Example usage for org.apache.solr.client.solrj SolrQuery setStart

List of usage examples for org.apache.solr.client.solrj SolrQuery setStart

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery setStart.

Prototype

public SolrQuery setStart(Integer start) 

Source Link

Usage

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);
    }
}