List of usage examples for org.apache.solr.client.solrj SolrQuery setStart
public SolrQuery setStart(Integer start)
From source file:SolrUpdate.java
License:Apache License
public void getAllSolrRecords() { String pmid;/*from w w w. jav a 2 s . c o m*/ try { CoreAdminRequest adminRequest = new CoreAdminRequest(); adminRequest.setAction(CoreAdminAction.RELOAD); SolrServer solr = new HttpSolrServer("http://localhost:8983/solr"); String query; query = "pmid:*"; SolrQuery theq = new SolrQuery(); theq.setQuery(query); theq.setStart(0); theq.setRows(10000); QueryResponse response = new QueryResponse(); response = solr.query(theq); SolrDocumentList list = response.getResults(); int docnum = 1; for (SolrDocument doc : list) { Publication currlist = new Publication(); List<String> fullnames = new ArrayList<String>(); String currepubsum1 = "", currepubsum2 = ""; if (doc.getFieldValue("abstract") != null) { currlist.setAbstract(doc.getFieldValue("abstract").toString()); } if (doc.getFieldValue("ptitle") != null) { currlist.setTitle(doc.getFieldValue("ptitle").toString()); } if (doc.getFieldValue("author_fullname_list") != null) { currlist.setFirst5authors(doc.getFieldValue("author_fullname_list").toString()); } if (doc.getFieldValue("pmid") != null) { currlist.setPmid(Integer.valueOf(doc.getFieldValue("pmid").toString())); } if (doc.getFieldValue("completion") != null) { currlist.setCompletion(Boolean.valueOf(doc.getFieldValue("completion").toString())); } if (doc.getFieldValue("lruid") != null) { currlist.setLruid(doc.getFieldValue("lruid").toString()); } if (doc.getFieldValue("draftpoint") != null) { currlist.setDraftpoint(Integer.valueOf(doc.getFieldValue("draftpoint").toString())); } if (doc.getFieldValue("journalname") != null) { currlist.setJournalname(doc.getFieldValue("journalname").toString()); } if (doc.getFieldValue("journalyear") != null) { currlist.setJournalyear(doc.getFieldValue("journalyear").toString()); } if (doc.getFieldValue("journalday") != null) { currlist.setJournalday(doc.getFieldValue("journalday").toString()); } if (doc.getFieldValue("journalmonth") != null) { currlist.setJournalmonth(doc.getFieldValue("journalmonth").toString()); } if (doc.getFieldValue("journalpage") != null) { currlist.setJournalstartpg(doc.getFieldValue("journalpage").toString()); } if (doc.getFieldValue("journalissue") != null) { currlist.setJournalissue(doc.getFieldValue("journalissue").toString()); } if (doc.getFieldValue("journalvolume") != null) { currlist.setJournalvolume(doc.getFieldValue("journalvolume").toString()); } if (doc.getFieldValue("publicationdate_year") != null) { currlist.setYear(doc.getFieldValue("publicationdate_year").toString()); } if (doc.getFieldValue("doi") != null) { currlist.setDoi(doc.getFieldValue("doi").toString()); } if (doc.getFieldValues("pfileinfo") != null) { Collection<Object> currcoll = doc.getFieldValues("pfileinfo"); for (Object currobj : currcoll) { currlist.getFilesanddata().add(currobj.toString()); } } if (doc.getFieldValue("author_firstname") != null) { currlist.setFauthors((List<String>) doc.getFieldValue("author_firstname")); } if (doc.getFieldValue("author_lastname") != null) { currlist.setLauthors((List<String>) doc.getFieldValue("author_lastname")); } if (doc.getFieldValue("epubmonth") != null) { currlist.setEpubmonth(doc.getFieldValue("epubmonth").toString()); } if (doc.getFieldValue("epubyear") != null) { currlist.setEpubyear(doc.getFieldValue("epubyear").toString()); } if (doc.getFieldValue("epubday") != null) { currlist.setEpubday(doc.getFieldValue("epubday").toString()); } int counter = 0; for (String currstring : currlist.getFauthors()) { currstring += " " + currlist.getLauthors().get(counter); fullnames.add(currstring); counter++; } currlist.setFullnames(fullnames); if (currlist.getJournalvolume().length() > 0) { currepubsum2 += currlist.getJournalvolume(); } if (currlist.getJournalissue().length() > 0) { currepubsum2 += "(" + currlist.getJournalissue() + ")" + ":"; } if (currlist.getJournalstartpg().length() > 0) { currepubsum2 += currlist.getJournalstartpg() + "."; } if (currlist.getEpubday().length() < 1 && currlist.getEpubmonth().length() < 1 && currlist.getEpubyear().length() < 1) { currepubsum1 = "[Epub ahead of print]"; } else if (currlist.getEpubyear().length() > 0) { currepubsum1 = "Epub " + currlist.getEpubyear() + " " + currlist.getEpubmonth() + " " + currlist.getEpubday(); } else { currepubsum1 = ""; } currlist.setEpubsum(currepubsum1); currlist.setEpubsum2(currepubsum2); currlist.setIndex(docnum); if (currlist.getCompletion() == false) { currlist.setComp("Hidden"); } else { currlist.setComp("Visible"); } solrrecords.add(currlist); docnum++; } } catch (Exception ex) { System.out.println(ex); } System.out.println("There are a total of this many records gathered: " + solrrecords.size()); }
From source file:actors.SolrActor.java
License:Apache License
public void performedSearch(SolrSearchEvent msg) { try {//from w w w.jav a2 s .c o m System.out.println("SolrSearchEvent"); System.out.println(""); SolrQuery parameters = new SolrQuery(); //parameters.setRequestHandler("/get"); parameters.set("q", msg.getQuery()); parameters.setFields("title", "id", "path", "when", "icon", "size", "content_type"); parameters.set("defType", "edismax"); parameters.addFilterQuery("title", "content"); parameters.setStart(0); parameters.setHighlight(true).setHighlightSnippets(1); //set other params as needed parameters.setParam("hl.fl", "content"); parameters.setParam("wt", "json"); server.query(parameters); System.out.println(parameters); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:at.pagu.soldockr.core.QueryParser.java
License:Apache License
private void appendPagination(SolrQuery query, Pageable pageable) { if (pageable == null) { return;//from ww w . j ava2 s . c o m } query.setStart(pageable.getOffset()); query.setRows(pageable.getPageSize()); }
From source file:at.pagu.soldockr.core.SolrTemplate.java
License:Apache License
@Override public long executeCount(final SolDockRQuery query) { Assert.notNull(query, "Query must not be 'null'."); return execute(new SolrCallback<Long>() { @Override/*from w w w . j av a 2s . co m*/ public Long doInSolr(SolrServer solrServer) throws SolrServerException, IOException { SolrQuery solrQuery = queryParser.constructSolrQuery(query); solrQuery.setStart(0); solrQuery.setRows(0); return solrServer.query(solrQuery).getResults().getNumFound(); } }); }
From source file:au.org.ala.biocache.dao.SearchDAOImpl.java
License:Open Source License
/** * Perform SOLR query - takes a SolrQuery and search params * * @param solrQuery//from w ww .j a v a 2 s. c o m * @param requestParams * @return * @throws SolrServerException */ private QueryResponse runSolrQuery(SolrQuery solrQuery, SearchRequestParams requestParams) throws SolrServerException { if (requestParams.getFormattedFq() != null) { for (String fq : requestParams.getFormattedFq()) { if (StringUtils.isNotEmpty(fq)) { solrQuery.addFilterQuery(fq); } } } //include null facets solrQuery.setFacetMissing(true); solrQuery.setRows(requestParams.getPageSize()); solrQuery.setStart(requestParams.getStart()); solrQuery.setSortField(requestParams.getSort(), ORDER.valueOf(requestParams.getDir())); if (logger.isDebugEnabled()) { logger.debug("runSolrQuery: " + solrQuery.toString()); } QueryResponse qr = query(solrQuery, queryMethod); // can throw exception if (logger.isDebugEnabled()) { logger.debug("runSolrQuery: " + solrQuery.toString() + " qtime:" + qr.getQTime()); if (qr.getResults() == null) { logger.debug("no results"); } else { logger.debug("matched records: " + qr.getResults().getNumFound()); } } return qr; }
From source file:au.org.ala.biocache.dao.SearchDAOImpl.java
License:Open Source License
/** * Helper method to create SolrQuery object and add facet settings * * @return solrQuery the SolrQuery//ww w . ja va 2 s . c o m */ protected SolrQuery initSolrQuery(SearchRequestParams searchParams, boolean substituteDefaultFacetOrder, Map<String, String[]> extraSolrParams) { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQueryType("standard"); boolean rangeAdded = false; // Facets solrQuery.setFacet(searchParams.getFacet()); if (searchParams.getFacet()) { for (String facet : searchParams.getFacets()) { if (facet.equals("date") || facet.equals("decade")) { String fname = facet.equals("decade") ? OCCURRENCE_YEAR_INDEX_FIELD : "occurrence_" + facet; initDecadeBasedFacet(solrQuery, fname); } else if (facet.equals("uncertainty")) { Map<String, String> rangeMap = rangeBasedFacets.getRangeMap("uncertainty"); for (String range : rangeMap.keySet()) { solrQuery.add("facet.query", range); } } else if (facet.endsWith(RANGE_SUFFIX)) { //this facte need to have it ranges included. if (!rangeAdded) { solrQuery.add("facet.range.other", "before"); solrQuery.add("facet.range.other", "after"); } String field = facet.replaceAll(RANGE_SUFFIX, ""); StatsIndexFieldDTO details = getRangeFieldDetails(field); if (details != null) { solrQuery.addNumericRangeFacet(field, details.getStart(), details.getEnd(), details.getGap()); } } else { solrQuery.addFacetField(facet); if ("".equals(searchParams.getFsort()) && substituteDefaultFacetOrder && FacetThemes.getFacetsMap().containsKey(facet)) { //now check if the sort order is different to supplied String thisSort = FacetThemes.getFacetsMap().get(facet).getSort(); if (!searchParams.getFsort().equalsIgnoreCase(thisSort)) solrQuery.add("f." + facet + ".facet.sort", thisSort); } } } solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(searchParams.getFlimit()); //include this so that the default fsort is still obeyed. String fsort = "".equals(searchParams.getFsort()) ? "count" : searchParams.getFsort(); solrQuery.setFacetSort(fsort); if (searchParams.getFoffset() > 0) solrQuery.add("facet.offset", Integer.toString(searchParams.getFoffset())); if (StringUtils.isNotEmpty(searchParams.getFprefix())) solrQuery.add("facet.prefix", searchParams.getFprefix()); } solrQuery.setRows(10); solrQuery.setStart(0); if (searchParams.getFl().length() > 0) { solrQuery.setFields(searchParams.getFl()); } //add the extra SOLR params if (extraSolrParams != null) { //automatically include the before and after params... if (!rangeAdded) { solrQuery.add("facet.range.other", "before"); solrQuery.add("facet.range.other", "after"); } for (String key : extraSolrParams.keySet()) { String[] values = extraSolrParams.get(key); solrQuery.add(key, values); } } return solrQuery; }
From source file:au.org.ala.biocache.dao.TaxonDAOImpl.java
License:Open Source License
private List<FacetField.Count> extractFacet(String queryString, String[] filterQueries, String facetName) throws Exception { SolrQuery query = new SolrQuery(queryString); query.setFacet(true);/*from w w w . j a v a 2 s. co m*/ query.addFacetField(facetName); query.setRows(0); query.setFacetLimit(200000); query.setStart(0); query.setFacetMinCount(1); query.setFacetSort("index"); //query.setFacet if (filterQueries != null) { for (String fq : filterQueries) query.addFilterQuery(fq); } QueryResponse response = server.query(query); List<FacetField.Count> fc = response.getFacetField(facetName).getValues(); if (fc == null) { fc = new ArrayList<FacetField.Count>(); } return fc; }
From source file:au.org.intersect.dms.catalogue.db.SolrIndexFacade.java
License:Open Source License
/** * Returns all datasets owned by the user matching specified full text search query * /*from w w w . j a v a2 s . c om*/ * @param username * username of the owner in DMS system * @param userProjects * list of project codes from booking system this username belongs to * @param query * full text search query * @param startIndex * index of the first dataset to display on the curect page * @param pageSize * max number of datasets to display on each page * @return datasets of this user (one page) */ public DatasetSearchResult findDatasets(String username, List<Long> projects, String query, int startIndex, int pageSize) { SolrQuery solrQuery = new SolrQuery(); solrQuery.setFields(ID); solrQuery.setStart(startIndex); solrQuery.setRows(pageSize); solrQuery.setSortField(ID, ORDER.asc); StringBuilder queryString = new StringBuilder(); if (query == null || "".equals(query)) { queryString.append("dataset.metadata_t:*"); } else { queryString.append(query); } queryString.append(" AND (dataset.owner_s:").append(username); String projectQuery = buildProjectCriteria(projects); if (!projectQuery.isEmpty()) { queryString.append(" OR ").append(projectQuery); } queryString.append(")"); solrQuery.setQuery(queryString.toString()); QueryResponse solrResponse = DbDataset.search(solrQuery); SolrDocumentList docs = solrResponse.getResults(); List<Dataset> datasets = convertSolrDocuments2Datasets(docs); DatasetSearchResult result = new DatasetSearchResult(); result.setDatasets(datasets); result.setTotalSize(docs != null ? docs.getNumFound() : 0); return result; }
From source file:cn.edu.pku.lib.dataverse.SolrSearchServiceBean.java
public long getDatasetCount() throws SearchException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); solrQuery.setFilterQueries(SearchFields.TYPE + ":datasets", SearchFields.PUBLICATION_STATUS + ":Published"); solrQuery.setStart(0); solrQuery.setRows(0);//from w w w . j a va2 s . c o m QueryResponse queryResponse = null; try { queryResponse = solrServer.query(solrQuery); return queryResponse.getResults().getNumFound(); } catch (HttpSolrServer.RemoteSolrException | SolrServerException ex) { logger.log(Level.INFO, null, ex); throw new SearchException("Internal Dataverse Search Engine Error", ex); } }
From source file:cn.edu.pku.lib.dataverse.SolrSearchServiceBean.java
public long getDataverseCount() throws SearchException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); solrQuery.setFilterQueries(SearchFields.TYPE + ":dataverses", SearchFields.PUBLICATION_STATUS + ":Published"); solrQuery.setStart(0); solrQuery.setRows(0);//from w ww .ja v a2 s .c o m QueryResponse queryResponse = null; try { queryResponse = solrServer.query(solrQuery); return queryResponse.getResults().getNumFound(); } catch (HttpSolrServer.RemoteSolrException | SolrServerException ex) { logger.log(Level.INFO, null, ex); throw new SearchException("Internal Dataverse Search Engine Error", ex); } }