Example usage for org.apache.solr.common SolrDocumentList getNumFound

List of usage examples for org.apache.solr.common SolrDocumentList getNumFound

Introduction

In this page you can find the example usage for org.apache.solr.common SolrDocumentList getNumFound.

Prototype

public long getNumFound() 

Source Link

Usage

From source file:org.entrystore.repository.util.SolrSupport.java

License:Apache License

private long sendQueryForEntryURIs(SolrQuery query, Set<URI> result, SolrServer solrServer, int offset,
        int limit) {
    if (offset > -1) {
        query.setStart(offset);//w  w  w. j  ava2 s .  c  o m
    }
    if (limit > -1) {
        query.setRows(limit);
    }

    long hits = -1;

    Date before = new Date();
    QueryResponse r = null;
    try {
        r = solrServer.query(query);
        SolrDocumentList docs = r.getResults();
        hits = docs.getNumFound();
        for (SolrDocument solrDocument : docs) {
            if (solrDocument.containsKey("uri")) {
                String uri = (String) solrDocument.getFieldValue("uri");
                if (uri != null) {
                    result.add(URI.create(uri));
                }
            }
        }
    } catch (SolrServerException e) {
        log.error(e.getMessage());
    }
    log.info("Solr query took " + (new Date().getTime() - before.getTime()) + " ms");

    return hits;
}

From source file:org.gss_project.gss.server.ejb.ExternalAPIBean.java

License:Open Source License

/**
  * Performs the search on the solr server and returns the results
  */*from   w  w w .  j  av  a2 s  .  c om*/
  *
   * @param userId
   * @param query
   * @param luceneQuery
   * @return a List of FileHeader objects
  */
 public SearchResult search(Long userId, String query, int start, boolean luceneQuery)
         throws ObjectNotFoundException {
     if (userId == null)
         throw new ObjectNotFoundException("No user specified");
     if (query == null)
         throw new ObjectNotFoundException("No query specified");

     final int maxRows = getConfiguration().getInt("searchResultsPerPage", 25);
     List<FileHeader> result = new ArrayList<FileHeader>();
     try {
         CommonsHttpSolrServer solr = new CommonsHttpSolrServer(getConfiguration().getString("solr.url"));
         List<Group> groups = dao.getGroupsContainingUser(userId);
         String escapedQuery = luceneQuery ? normalizeSearchQuery(query)
                 : escapeCharacters(normalizeSearchQuery(query));
         String constructedQuery = escapedQuery + " AND (public: true OR ureaders: " + userId;
         if (!groups.isEmpty()) {
             constructedQuery += " OR (";
             for (int i = 0; i < groups.size(); i++) {
                 Group g = groups.get(i);
                 constructedQuery += "greaders :" + g.getId();
                 if (i < groups.size() - 1)
                     constructedQuery += " OR ";
             }
             constructedQuery += ")";
         }
         constructedQuery += ")";
         SolrQuery solrQuery = new SolrQuery(constructedQuery);
         solrQuery.setRows(maxRows);
         if (start > 0)
             solrQuery.setStart(start);
         QueryResponse response = solr.query(solrQuery);
         SolrDocumentList results = response.getResults();
         if (results.getNumFound() > maxRows && start < 0) {
             solrQuery.setRows(Integer.valueOf((int) results.getNumFound()));
             response = solr.query(solrQuery);
             results = response.getResults();
         }
         for (SolrDocument d : results) {
             Long id = Long.valueOf((String) d.getFieldValue("id"));
             try {
                 FileHeader f = dao.getEntityById(FileHeader.class, id);
                 result.add(f);
             } catch (ObjectNotFoundException e) {
                 logger.warn("Search result id " + id + " cannot be found", e);
             }
         }
         return new SearchResult(results.getNumFound(), result);
     } catch (MalformedURLException e) {
         logger.error(e);
         throw new EJBException(e);
     } catch (SolrServerException e) {
         logger.error(e);
         throw new EJBException(e);
     }
 }

From source file:org.intermine.api.searchengine.solr.SolrKeywordSearchHandler.java

License:GNU General Public License

@Override
public KeywordSearchResults doKeywordSearch(InterMineAPI im, String queryString,
        Map<String, String> facetValues, List<Integer> ids, int offSet) {

    KeywordSearchPropertiesManager keywordSearchPropertiesManager = KeywordSearchPropertiesManager
            .getInstance(im.getObjectStore());
    Vector<KeywordSearchFacetData> facets = keywordSearchPropertiesManager.getFacets();

    QueryResponse resp = performSearch(im, queryString, facetValues, ids, offSet,
            keywordSearchPropertiesManager.PER_PAGE);

    SolrDocumentList results = resp.getResults();

    Set<Integer> objectIds = getObjectIds(results);

    Map<Integer, InterMineObject> objMap = null;

    try {/*from  w w  w .  j  a v  a 2  s . co m*/
        objMap = Objects.getObjects(im, objectIds);

    } catch (ObjectStoreException e) {
        LOG.error("ObjectStoreException for query term : " + queryString, e);
    }

    Vector<KeywordSearchResultContainer> searchHits = getSearchHits(results, objMap, results.getMaxScore());

    Collection<KeywordSearchFacet> searchResultsFacets = parseFacets(resp, facets, facetValues);

    return new KeywordSearchResults(searchHits, searchResultsFacets, (int) results.getNumFound());

}

From source file:org.jaggeryjs.hostobjects.registry.RegistryHostObject.java

License:Open Source License

private ResourceData[] search(UserRegistry registry, String searchQuery)
        throws IndexerException, RegistryException {
    SolrClient client = SolrClient.getInstance();
    SolrDocumentList results = client.query(searchQuery, registry.getTenantId());

    if (log.isDebugEnabled())
        log.debug("result received " + results);

    List<ResourceData> filteredResults = new ArrayList<ResourceData>();
    for (int i = 0; i < results.getNumFound(); i++) {
        SolrDocument solrDocument = results.get(i);
        String path = getPathFromId((String) solrDocument.getFirstValue("id"));
        //if (AuthorizationUtils.authorize(path, ActionConstants.GET)){
        if ((registry.resourceExists(path)) && (isAuthorized(registry, path, ActionConstants.GET))) {
            filteredResults.add(loadResourceByPath(registry, path));
        }//from   www .j a  v  a  2 s  .  c o  m
    }
    if (log.isDebugEnabled()) {
        log.debug("filtered results " + filteredResults + " for user " + registry.getUserName());
    }
    return filteredResults.toArray(new ResourceData[0]);
}

From source file:org.kimios.kernel.index.SolrIndexManager.java

License:Open Source License

public SearchResponse executeSolrQuery(SolrQuery query) throws IndexException {
    QueryResponse rsp;//from  ww  w .j  a  v  a  2  s .  co m
    try {
        rsp = solr.query(query);
        final List<Long> list = new Vector<Long>();
        SolrDocumentList documentList = rsp.getResults();
        for (SolrDocument dc : documentList) {

            log.debug("Solr result doc: " + dc);

            list.add((Long) dc.getFieldValue("DocumentUid"));
        }
        SearchResponse searchResponse = new SearchResponse(list);
        searchResponse.setResults(new Long(documentList.getNumFound()).intValue());
        searchResponse.setRows(solrDocumentFactory.getPojosFromSolrInputDocument(rsp.getResults()));
        return searchResponse;
    } catch (SolrServerException ex) {
        throw new IndexException(ex, ex.getMessage());
    }
}

From source file:org.kimios.kernel.index.SolrIndexManager.java

License:Open Source License

public void updatePath(String oldPath, String newPath) throws IndexException {
    try {/*w  ww  .j  a  v a  2s . c  om*/
        if (oldPath.endsWith("/")) {
            oldPath = oldPath.substring(0, oldPath.lastIndexOf("/"));
        }
        if (!newPath.endsWith("/")) {
            newPath += "/";
        }
        Query q = new DocumentParentClause(oldPath).getLuceneQuery();
        SolrDocumentList items = this.solr.query(new SolrQuery(q.toString())).getResults();

        if (items.getNumFound() > 0) {
            List<SolrInputDocument> documentList = new ArrayList<SolrInputDocument>();
            this.solr.deleteByQuery(q.toString());
            for (SolrDocument doc : items) {
                String path = doc.getFieldValue("DocumentParent").toString();
                path = newPath + path.substring(oldPath.length() + 1);
                doc.removeFields("DocumentParent");
                SolrInputDocument updatedDocument = ClientUtils.toSolrInputDocument(doc);
                updatedDocument.addField("DocumentParent", path);
                documentList.add(updatedDocument);
            }
            this.solr.add(documentList);
            this.solr.commit();
        }
    } catch (Exception ex) {
        throw new IndexException(ex, ex.getMessage());
    }
}

From source file:org.kuali.ole.docstore.discovery.service.IndexerService_UT.java

License:Open Source License

@Ignore
@Test/*from  w ww.  jav  a 2  s  .  co m*/
public void testWorkInstanceOlemlIndexDocuments() throws Exception {
    cleanUpData();
    RequestDocument rd = null;
    QueryResponse response;
    String instanceRequestFile = "/work/instance/oleml/Instance-Request.xml"; // "/work/instance/oleml/Instance-Request.xml";
    URL resource = getClass().getResource(instanceRequestFile);
    File file = new File(resource.toURI());
    String instanceRequestContent = readFile(file);
    RequestHandler requestHandler = new RequestHandler();
    org.kuali.ole.docstore.model.xmlpojo.ingest.Request request = requestHandler
            .toObject(instanceRequestContent);
    List<RequestDocument> requestDocumentList = request.getRequestDocuments();
    LOG.info("requestDocuments size " + requestDocumentList.size());
    int i = 0;

    for (RequestDocument requestDocument : requestDocumentList) {
        modifyRequestDocument(requestDocument);
        display(requestDocument);
        getIndexerService(requestDocument).indexDocument(requestDocument);
        response = searchBibRecord(DocCategory.WORK.getCode(), DocType.BIB.getDescription(),
                DocFormat.MARC.getCode(), "id", requestDocument.getUuid());
        // LOG.info("searchBibRecord : response " + response);
        SolrDocumentList solrDocumentList = response.getResults();

        //assertEquals(1, solrDocumentList.getNumFound());
        LOG.info("getNumFound marc " + solrDocumentList.getNumFound());

        for (RequestDocument requestDocumentLinks : requestDocument.getLinkedRequestDocuments()) {
            InstanceCollection ic = (InstanceCollection) requestDocumentLinks.getContent().getContentObject();
            for (Instance oleInstance : ic.getInstance()) {
                response = searchInstanceRecord(requestDocumentLinks.getCategory(),
                        requestDocumentLinks.getType(), requestDocumentLinks.getFormat(), "id",
                        oleInstance.getInstanceIdentifier());
                solrDocumentList = response.getResults();
                LOG.info("getNumFound oleinstance " + solrDocumentList.getNumFound());
                //assertEquals(1, solrDocumentList.getNumFound());
                response = searchHoldingRecord(DocCategory.WORK.getCode(), "holding", DocFormat.OLEML.getCode(),
                        "id", oleInstance.getOleHoldings().getHoldingsIdentifier());
                solrDocumentList = response.getResults();
                LOG.info("getNumFound oleholding " + solrDocumentList.getNumFound());
                //assertEquals(1, solrDocumentList.getNumFound());
                for (Item oleItem : oleInstance.getItems().getItem()) {
                    response = searchItemsRecord(DocCategory.WORK.getCode(), "item", DocFormat.OLEML.getCode(),
                            "id", oleItem.getItemIdentifier());
                    solrDocumentList = response.getResults();
                    LOG.info("getNumFound oleitem " + solrDocumentList.getNumFound());
                    // assertEquals(1, solrDocumentList.getNumFound());
                }
            }
        }
    }
}

From source file:org.lareferencia.xoai.services.impl.xoai.LRItemSolrRepository.java

License:BSD License

private QueryResult retrieveItems(List<ScopedFilter> filters, int offset, int length) throws LRSolrException {
    List<Item> list = new ArrayList<Item>();
    SolrQuery params = new SolrQuery(solrQueryResolver.buildQuery(filters)).setRows(length).setStart(offset);
    SolrDocumentList solrDocuments = LRSolrSearch.query(server, params);
    for (SolrDocument doc : solrDocuments)
        list.add(new RepositorySolrItem(doc));
    return new QueryResult(list, (solrDocuments.getNumFound() > offset + length),
            (int) solrDocuments.getNumFound());
}

From source file:org.memex.GunAdsParser.java

License:Apache License

public void getAds(String modelFilePath, int start) throws SolrServerException, IOException {
    File modelFile = new File(modelFilePath);

    // Construct a SolrQuery
    SolrQuery query = new SolrQuery();
    query.setQuery("*:*");
    query.setFields("content", "id");
    query.addFilterQuery(fq);/*  ww w  . j a  v a  2  s .  co m*/
    query.setStart(start);
    query.setRows(rows);

    QueryResponse rsp = this.solrCore.query(query);
    SolrDocumentList list = rsp.getResults();

    SentimentModel model = new SentimentModel(modelFile);
    SentimentME sentiment = new SentimentME(model);

    while (list.getNumFound() > list.getStart() + rows) {
        long index = list.getStart();
        for (SolrDocument doc : list) {
            String result = sentiment.predict((doc.getFieldValue("content")).toString());
            SolrInputDocument document = new SolrInputDocument();
            Map<String, Object> operation = new HashMap<>();
            operation.put("set", result);
            document.addField("id", doc.getFieldValue("id"));
            document.addField("sentiment_s_md", operation);
            System.out.println(doc.getFieldValue("id"));
            solrCore.add(document);
            solrCore.commit();
            if (true) {
                return;
            }
            System.out.println(index + ": " + result);
            index++;
        }
        //commit
        solrCore.commit();
        if (list.getNumFound() > list.getStart() + rows) {
            query.setStart((int) (list.getStart() + rows));
            rsp = this.solrCore.query(query);
            list = rsp.getResults();
        }
    }

}

From source file:org.mousephenotype.cda.solr.repositories.image.ImagesSolrJ.java

License:Apache License

private List<String> getIds(String query, int start, int length) throws SolrServerException, IOException {

    SolrDocumentList result = runQuery(query, start, length);

    log.debug("number found=" + result.getNumFound());
    this.setNumberFound(result.getNumFound());
    if (result.size() > 0) {
        List<String> ids = new ArrayList<String>();
        for (int i = 0; i < result.size(); i++) {
            SolrDocument doc = result.get(i);
            ids.add((String) doc.getFieldValue("id"));
        }//  w w w  . ja va 2s  . c  o m
        return ids;

    }
    return Collections.emptyList();

}