List of usage examples for org.apache.solr.common SolrDocumentList getNumFound
public long getNumFound()
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(); }