List of usage examples for org.apache.solr.client.solrj SolrQuery SolrQuery
public SolrQuery()
From source file:edu.cornell.mannlib.vitro.webapp.search.solr.SolrIndexer.java
License:Open Source License
@Override public long getModified() { long modified = 0; SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.addSortField("indexedTime", SolrQuery.ORDER.desc); try {/*from w w w.j ava 2 s .co m*/ QueryResponse rsp = server.query(query); SolrDocumentList docs = rsp.getResults(); if (docs != null) { modified = (Long) docs.get(0).getFieldValue("indexedTime"); } } catch (SolrServerException e) { log.error(e, e); } return modified; }
From source file:edu.cornell.mannlib.vitro.webapp.search.solr.SolrIndexer.java
License:Open Source License
/** * Returns true if there are documents in the index, false if there are none, * and returns false on failure to connect to server. *///from w w w . j a v a 2s . c om public boolean isIndexEmpty() { SolrQuery query = new SolrQuery(); query.setQuery("*:*"); try { QueryResponse rsp = server.query(query); SolrDocumentList docs = rsp.getResults(); if (docs == null || docs.size() == 0) { return true; } } catch (SolrServerException e) { log.error("Could not connect to solr server", e.getRootCause()); } return false; }
From source file:edu.csupomona.ir.solrapplication.Searcher.java
public static void main(String[] args) throws IOException, MalformedURLException, SolrServerException { HttpSolrServer solr = new HttpSolrServer("http://localhost:8983/solr"); SolrQuery param = new SolrQuery(); param.set("q", "news"); param.set("rows", "1000"); // query.addFilterQuery("cat:electronics","store:amazon.com"); // query.setFields("id","price","merchant","cat","store"); // param.setStart(0); // param.set("defType", "edismax"); Searcher sch = new Searcher(); QueryResponse response = solr.query(param); SolrDocumentList results = response.getResults(); // parse the result text and obtain term-frequency mapping List tf_list = new ArrayList(); for (int i = 0; i < results.size(); ++i) { tf_list.add(sch.parseText(results.get(i).get("content").toString())); }/*from w ww . j a v a 2s .c o m*/ // write the most significant term-frequency into file sch.write(tf_list, "data.txt"); // test KMeans from Java ML lib // sch.TestKMeansLib(results); // test a simple implementation of KMeans sch.TestKMeans(results.size()); }
From source file:edu.harvard.gis.hhypermap.bop.SolrUpdateSlammer.java
License:Apache License
private void slam() throws IOException, SolrServerException { int docCounter = 0; long nanosStart = System.nanoTime(); for (; Instant.now().isBefore(endInstant); docCounter++) { throwIfError();/*from w w w . j a va 2s . c om*/ Instant time = Instant.now().plusMillis(Math.abs(random.nextLong() % nextRandomMillis) - nextShiftBack); SolrInputDocument doc = new SolrInputDocument(); doc.setField("id", docCounter); doc.setField("created_at", Date.from(time)); sendDoc(doc); // update time for next lap: } client.commit(collection); throwIfError(); long nanosEnd = System.nanoTime(); System.out.println("Added " + docCounter + " docs in " + Duration.ofNanos(nanosEnd - nanosStart)); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*").setRows(0); QueryResponse queryResponse = client.query(collection, solrQuery); System.out.println("Found " + queryResponse.getResults().getNumFound()); }
From source file:edu.harvard.iq.dataverse.harvest.server.OAISetServiceBean.java
public List<Long> expandSetQuery(String query) throws OaiSetException { // We do not allow "keyword" queries (like "king") - we require // that they search on specific fields, for ex., "authorName:king": if (query == null || !(query.indexOf(':') > 0)) { throw new OaiSetException("Invalid search query."); }// w ww . j a v a 2 s .c o m SolrQuery solrQuery = new SolrQuery(); String restrictedQuery = addQueryRestrictions(query); solrQuery.setQuery(restrictedQuery); // addFilterQuery equivalent to addQueryRestrictions // solrQuery.setQuery(query); // solrQuery.addFilterQuery(SearchFields.TYPE + ":" + SearchConstants.DATASETS); // solrQuery.addFilterQuery(SearchFields.IS_HARVESTED + ":" + false); // solrQuery.addFilterQuery(SearchFields.PUBLICATION_STATUS + ":" + IndexServiceBean.PUBLISHED_STRING); solrQuery.setRows(Integer.MAX_VALUE); QueryResponse queryResponse = null; try { queryResponse = getSolrServer().query(solrQuery); } catch (RemoteSolrException ex) { String messageFromSolr = ex.getLocalizedMessage(); String error = "Search Syntax Error: "; String stringToHide = "org.apache.solr.search.SyntaxError: "; if (messageFromSolr.startsWith(stringToHide)) { // hide "org.apache.solr..." error += messageFromSolr.substring(stringToHide.length()); } else { error += messageFromSolr; } logger.fine(error); throw new OaiSetException(error); } catch (SolrServerException ex) { logger.fine("Internal Dataverse Search Engine Error"); throw new OaiSetException("Internal Dataverse Search Engine Error"); } SolrDocumentList docs = queryResponse.getResults(); Iterator<SolrDocument> iter = docs.iterator(); List<Long> resultIds = new ArrayList<>(); while (iter.hasNext()) { SolrDocument solrDocument = iter.next(); Long entityid = (Long) solrDocument.getFieldValue(SearchFields.ENTITY_ID); resultIds.add(entityid); } return resultIds; }
From source file:edu.harvard.lib.lcloud.ItemDAO.java
License:Open Source License
/** * Returns a SolrDocumentList for a given set of search parameters. Search parameters are parsed * and mapped into solr (solrj) query syntax, and solr query is performed. * @param queryParams query parameters to map to a solr query * @return the SolrDocumentList for this query * @see SolrDocumentList//from w ww. ja va 2 s . c o m */ private SolrDocumentList doQuery(MultivaluedMap<String, String> queryParams) { SolrDocumentList docs = null; HttpSolrServer server = null; ArrayList<String> queryList = new ArrayList<String>(); server = SolrServer.getSolrConnection(); SolrQuery query = new SolrQuery(); for (String key : queryParams.keySet()) { String value = queryParams.getFirst(key); System.out.println(key + " : " + queryParams.getFirst(key) + "\n"); if (key.equals("start")) { int startNo = Integer.parseInt(value); if (startNo < 0) startNo = 0; query.setStart(startNo); } else if (key.equals("limit")) { limit = Integer.parseInt(value); query.setRows(limit); } else if (key.equals("sort.asc") || key.equals("sort")) query.setSort(value, ORDER.asc); else if (key.equals("sort.desc")) query.setSort(value, ORDER.desc); else if (key.startsWith("facet")) { query.setFacet(true); String[] facetArray = value.split(","); for (String f : facetArray) { query.addFacetField(f); } } else { if (key.endsWith("_exact")) queryList.add(key.replace("_exact", "") + ":\"" + value + "\""); else { if (value.contains(" ")) value = "( " + value.replaceAll(" ", " AND ") + ")"; if (key.equals("q")) queryList.add("keyword:" + value); else queryList.add(key + "_keyword:" + value); } } } Iterator<String> it = queryList.iterator(); String queryStr = ""; while (it.hasNext()) { String qTerm = (String) it.next(); System.out.print("QT: " + qTerm + "\n"); queryStr += qTerm; System.out.print("QS: " + queryStr + "\n"); if (it.hasNext()) queryStr += " AND "; } System.out.print("queryStr: " + queryStr); query.setQuery(queryStr); QueryResponse response = null; try { response = server.query(query); } catch (SolrServerException se) { log.error(se.getMessage()); throw new BadParameterException(se.getMessage()); } catch (RemoteSolrException rse) { if (rse.getMessage().contains("SyntaxError")) { log.error("solr syntax error"); throw new BadParameterException("Incorrect query syntax"); } else { String msg = rse.getMessage().replace("_keyword", ""); log.error(msg); throw new BadParameterException("Incorrect query syntax:" + msg); } } List<FacetField> facets = response.getFacetFields(); facet = null; if (facets != null) { facet = new Facet(); List<FacetType> facetTypes = new ArrayList<FacetType>(); for (FacetField facetField : facets) { List<FacetTerm> facetTerms = new ArrayList<FacetTerm>(); FacetType facetType = new FacetType(); facetType.setFacetName(facetField.getName()); List<FacetField.Count> facetEntries = facetField.getValues(); for (FacetField.Count fcount : facetEntries) { if (fcount.getCount() > 0) { FacetTerm facetTerm = new FacetTerm(); facetTerm.setTermName(fcount.getName()); facetTerm.setTermCount(fcount.getCount()); //System.out.println(fcount.getName() + ": " + fcount.getCount()); facetTerms.add(facetTerm); } } facetType.setFacetTerms(facetTerms); facetTypes.add(facetType); } facet.setFacetTypes(facetTypes); } docs = response.getResults(); return docs; }
From source file:edu.harvard.liblab.ecru.rs.ResourceUtils.java
License:Open Source License
public static SolrQuery createSolrQuery(String q, List<String> fqs, String fl, String start, String rows, HashMap<String, List<String>> facetMap, String sort) { SolrQuery query = new SolrQuery(); if (q == null || q.trim().isEmpty()) { q = QUERY_ALL;//w ww.ja va2s . c om } query.setQuery(q); if (fqs != null && !fqs.isEmpty()) { query.setFilterQueries(fqs.toArray(new String[fqs.size()])); } try { Integer s = new Integer(start); query.setStart(s); } catch (NumberFormatException e) { if (start != null) System.out.println("start not integer: " + start); } try { Integer r = new Integer(rows); query.setRows(r); } catch (NumberFormatException e) { if (rows != null) System.out.println("rows not integer: " + rows); } if (fl != null && !fl.isEmpty()) { if (fl.indexOf("type") < 0) { fl += ",type"; } String[] fields = fl.split(","); for (int i = 0; i < fields.length; i++) { fields[i] = fields[i].trim(); } query.setFields(fields); } if (sort != null && !sort.trim().isEmpty()) { String[] sortArr = sort.split(","); ArrayList<SortClause> clauses = new ArrayList<SortClause>(); for (String s : sortArr) { if (!s.isEmpty()) { String[] sc = s.split(" "); String v = sc[0]; String order = "asc"; if (sc.length == 2) { order = sc[1]; } clauses.add(new SortClause(v, (order.equals("asc") ? ORDER.asc : ORDER.desc))); } } query.setSorts(clauses); } query = addFacetsToQuery(query, facetMap); return query; }
From source file:edu.indiana.d2i.htrc.solr.connection.SolrManager.java
License:Apache License
/** * send query String to Solr and get response * // w w w . j av a 2s .co m * @param queryStr query String that can be parsed by Solr Query Parser * @return query response, a org.apache.solr.client.solrj.response.QueryResponse object */ public QueryResponse query(String queryStr) { SolrQuery query = new SolrQuery(); query.setRows(Integer.MAX_VALUE); query.setQuery(queryStr); QueryResponse query_response = null; try { query_response = solrServer.query(query); } catch (SolrServerException e) { e.printStackTrace(); } return query_response; }
From source file:edu.indiana.htrc.action.auditlog.DataAPIGeneralAction.java
License:Apache License
public String execute() { if (session.get("testsession") != null) { int x = (Integer) session.get("testsession"); session.put("testsession", ++x); }/*from w w w. java 2 s.c o m*/ setErrorPage("/pages/DataAPI.jsp"); if (!Utility.validateInputDateOrder(from, to)) { return ERROR; } setDisplay("/pages/dataAPIAllResult.jsp"); String input_start_UTC = Utility.convertDate2UTC(from); String input_end_UTC = Utility.convertDate2UTC(to); Solr4Connector connector = new Solr4Connector(); SolrServer solr_server = connector.connect(); SolrQuery query = new SolrQuery(); String queryStr = "timeStamp:[" + input_start_UTC + " TO " + input_end_UTC + "]"; // " AND " + "userName:" + userName; if (userName != null) { queryStr = queryStr + " AND " + "userName:" + userName; } if (sourceIP != null) { queryStr = queryStr + " AND " + "sourceIP:" + sourceIP; } queryStr = queryStr + " AND " + "logName:" + "AUDIT-Log"; query.setQuery(queryStr).setRows(0).setFacet(true).set("facet.mincount", 1).set("facet.limit", 18) .set("facet.sort", "count").set("facet.date", "timeStamp") .set("f.timeStamp.facet.date.start", input_start_UTC) .set("f.timeStamp.facet.date.end", input_end_UTC).set("f.timeStamp.facet.date.gap", "+1DAY") .set("f.timeStamp.facet.mincount", 0).set("facet.field", fieldName); QueryResponse query_response = null; try { // logger.debug("solr_server == null is " + solr_server == null); query_response = solr_server.query(query); } catch (SolrServerException e) { // logger.debug("solr_server == null is " + solr_server == null); e.printStackTrace(); } // ///////////////////generate // charts///////////////////////////////////////// List<FacetField> facet_field_list = query_response.getFacetFields(); for (int i = 0; i < facet_field_list.size(); i++) { FacetField facet_field = facet_field_list.get(i); String field_name = facet_field.getName(); Map<String, Integer> map = Utility.getFacetFieldAsMap(facet_field); if (field_name.equals("date")) { FacetField facet_date = query_response.getFacetDate("timeStamp"); Map<String, Integer> UTC_detail_time_map = Utility.getFacetFieldAsMap(facet_date); Map<String, Integer> UTC_YMD_map = Utility.convertMapFromUTCDetail2UTCYMD(UTC_detail_time_map); setTimeIntervalMap(UTC_YMD_map); // setDateMap(map); } else if (field_name.equals("sourceIP")) { setIpMap(map); } else if (field_name.equals("responseStatus")) { setResponseStatusMap(map); } else if (field_name.equals("userName")) { setUserMap(map); } } connector.disconnect(); return SUCCESS; }
From source file:edu.indiana.htrc.action.solrproxylog.SolrProxyGeneralAction.java
License:Apache License
public String execute() { setErrorPage("/pages/SolrProxy.jsp"); if (!Utility.validateInputDateOrder(from, to)) { return ERROR; }/*from w ww .ja va 2s .c o m*/ setDisplay("/pages/solrProxyAllResult.jsp"); String input_start_UTC = Utility.convertDate2UTC(from); String input_end_UTC = Utility.convertDate2UTC(to); Solr4Connector connector = new Solr4Connector(); SolrServer solr_server = connector.connect(); SolrQuery query = new SolrQuery(); String queryStr = "timeStamp:[" + input_start_UTC + " TO " + input_end_UTC + "]"; // " AND " + "userName:" + userName; if (sourceIP != null) { queryStr = queryStr + " AND " + "sourceIP:" + sourceIP; } if (XForward_For != null) { queryStr = queryStr + " AND " + "XForward_For:" + XForward_For; } queryStr = queryStr + " AND " + "logName:" + "SOLR-PROXY-Log"; query.setQuery(queryStr).setRows(0).setFacet(true).set("facet.mincount", 1).set("facet.limit", 18) .set("facet.sort", "count").set("facet.date", "timeStamp") .set("f.timeStamp.facet.date.start", input_start_UTC) .set("f.timeStamp.facet.date.end", input_end_UTC).set("f.timeStamp.facet.date.gap", "+1DAY") .set("f.timeStamp.facet.mincount", 0).set("facet.field", fieldName); QueryResponse query_response = null; try { // logger.debug("solr_server == null is " + solr_server == null); query_response = solr_server.query(query); } catch (SolrServerException e) { // logger.debug("solr_server == null is " + solr_server == null); e.printStackTrace(); } // ///////////////////generate charts///////////////////////////////////////// List<FacetField> facet_field_list = query_response.getFacetFields(); for (int i = 0; i < facet_field_list.size(); i++) { FacetField facet_field = facet_field_list.get(i); String field_name = facet_field.getName(); Map<String, Integer> map = Utility.getFacetFieldAsMap(facet_field); if (field_name.equals("date")) { FacetField facet_date = query_response.getFacetDate("timeStamp"); Map<String, Integer> UTC_detail_time_map = Utility.getFacetFieldAsMap(facet_date); Map<String, Integer> UTC_YMD_map = Utility.convertMapFromUTCDetail2UTCYMD(UTC_detail_time_map); setTimeIntervalMap(UTC_YMD_map); //setDateMap(map); } else if (field_name.equals("sourceIP")) { setIpMap(map); } else if (field_name.equals("responseStatus")) { setResponseStatusMap(map); } else if (field_name.equals("XForward_For")) { setXForward_ForMap(map); } } connector.disconnect(); return SUCCESS; }