List of usage examples for org.apache.solr.client.solrj SolrQuery setIncludeScore
public SolrQuery setIncludeScore(boolean includeScore)
From source file:org.ambraproject.search.service.SolrSearchService.java
License:Apache License
private SolrQuery createKeywordFacetQuery(String queryString) { SolrQuery query = new SolrQuery(); query.setTimeAllowed(queryTimeout);/*from w w w . j av a2 s .c om*/ query.setIncludeScore(false); query.setHighlight(false); query.setRows(0); query.set("defType", "dismax"); query.set("qf", "doc_partial_body"); query.addFacetField("doc_partial_type"); query.setFacetLimit(MAX_FACET_SIZE); query.setFacetMinCount(MIN_FACET_COUNT); // Add a filter to ensure that Solr never returns partial documents query.addFilterQuery(createFilterPartialDocuments()); query.setQuery(queryString); return query; }
From source file:org.ambraproject.service.feed.FeedServiceImpl.java
License:Apache License
@Override public Document getSearchArticles(final FeedSearchParameters sParams) throws ApplicationException { log.debug("Performing RSS Feed Search"); SolrQuery query = null; if (sParams.getUnformattedQuery().equals("")) { log.debug("Simple Rss Search performed on the String: " + sParams.getQuery()); query = new SolrQuery(sParams.getQuery()); query.set("defType", "dismax"); } else {//www . jav a2s . co m log.debug("Simple Rss Search performed on the String: " + sParams.getUnformattedQuery()); query = new SolrQuery(sParams.getUnformattedQuery()); } query.setTimeAllowed(queryTimeout); query.setIncludeScore(true); // The relevance (of each results element) to the search terms. query.setHighlight(false); // request only fields that we need query.setFields("id", "title_display", "publication_date", "author_without_collab_display", "author_collab_only_display", "author_display", "volume", "issue", "article_type", "subject_hierarchy", "abstract_primary_display", "copyright"); query.addFilterQuery("doc_type:full"); query.addFilterQuery("!article_type_facet:\"Issue Image\""); query.addFacetField("cross_published_journal_key"); // Form field description: "Journals". Query Filter. if (sParams.getFilterJournals() != null && sParams.getFilterJournals().length > 0) { query.addFilterQuery(createFilterLimitForJournals(sParams.getFilterJournals())); } // Form field description: "Subject Categories". Query Filter. if (sParams.getFilterSubjects() != null && sParams.getFilterSubjects().length > 0) { query.addFilterQuery(createFilterLimitForSubject(sParams.getFilterSubjects())); } // Form field description: "Article Types". Query Filter. if (sParams.getFilterArticleType() != null && sParams.getFilterArticleType().length > 0) { query.addFilterQuery(createFilterLimitForArticleType(sParams.getFilterArticleType())); } //Set the sort ordering for results, if applicable. setSort(query, sParams); //If the keywords parameter is specified, we need to change what field we're querying against //aka, body, conclusions, materials and methods ... etc ... if (sParams.getFilterKeyword().length() > 0) { String fieldkey = sParams.getFilterKeyword(); if (!validKeywords.containsKey(fieldkey)) { throw new ApplicationException("Invalid filterKeyword value of " + fieldkey + " specified"); } String fieldName = (String) validKeywords.get(fieldkey); query.set("qf", fieldName); } query.set("wt", "xml"); Document result = null; try { result = solrHttpService.makeSolrRequestForRss(query.toString()); } catch (SolrException e) { e.printStackTrace(); } return result; }
From source file:org.ambraproject.service.search.SolrSearchService.java
License:Apache License
private SolrQuery createQuery(String queryString, int startPage, int pageSize, boolean useDismax) { SolrQuery query = new SolrQuery(queryString); query.setTimeAllowed(queryTimeout);/*from w ww . ja va 2 s . co m*/ query.setIncludeScore(true); // The relevance (of each results element) to the search terms. query.setHighlight(false); if (useDismax) { query.set("defType", "dismax"); } //TODO: Put The "options" from the "queryField" picklist into a config file. //This list matches the "options" from the "queryField" picklist on unformattedSearch.ftl, //without the "date" fields. query.setStart(startPage * pageSize); // Which results element to return first in this batch. query.setRows(pageSize); // The number of results elements to return. // request only fields that we need to display query.setFields("id", "score", "title_display", "publication_date", "eissn", "journal", "article_type", "author_display", "abstract", "abstract_primary_display", "striking_image", "figure_table_caption", "subject", "expression_of_concern", "retraction"); query.addFacetField("subject_facet"); query.addFacetField("author_facet"); query.addFacetField("editor_facet"); query.addFacetField("article_type_facet"); query.addFacetField("affiliate_facet"); query.set("facet.method", "fc"); query.setFacetLimit(MAX_FACET_SIZE); query.setFacetMinCount(MIN_FACET_COUNT); // Add a filter to ensure that Solr never returns partial documents query.addFilterQuery(createFilterFullDocuments()); return query; }
From source file:org.ambraproject.service.search.SolrSearchService.java
License:Apache License
private SolrQuery createFacetsQuery(String queryString, String field, boolean useDismax) { SolrQuery query = new SolrQuery(queryString); query.setTimeAllowed(queryTimeout);// w ww. j ava 2s . co m query.setIncludeScore(false); query.setHighlight(false); query.setRows(0); query.setFacetLimit(MAX_FACET_SIZE); query.setFacetMinCount(MIN_FACET_COUNT); if (useDismax) { query.set("defType", "dismax"); } query.addFacetField(field); // Add a filter to ensure that Solr never returns partial documents query.addFilterQuery(createFilterFullDocuments()); return query; }
From source file:org.apache.jena.query.text.TextIndexSolr.java
License:Apache License
private SolrDocumentList solrQuery(String qs, int limit) { SolrQuery sq = new SolrQuery(qs); sq.setIncludeScore(true); if (limit > 0) sq.setRows(limit);/*from w w w . ja va 2s .c o m*/ else sq.setRows(MAX_N); // The Solr default is 10. try { // Set default field. sq.add(CommonParams.DF, docDef.getPrimaryField()); QueryResponse rsp = solrServer.query(sq); SolrDocumentList docs = rsp.getResults(); return docs; } catch (SolrServerException e) { exception(e); return null; } }
From source file:org.entrystore.repository.util.SolrSupport.java
License:Apache License
public QueryResult sendQuery(SolrQuery query) { Set<URI> entries = new LinkedHashSet<URI>(); Set<Entry> result = new LinkedHashSet<Entry>(); long hits = -1; int limit = query.getRows(); int offset = query.getStart(); query.setIncludeScore(true); int resultFillIteration = 0; do {//from w w w . j av a 2 s . co m if (resultFillIteration++ > 0) { if (resultFillIteration > 10) { log.warn("Breaking after 10 result fill interations to prevent too many loops"); break; } offset += 10; log.warn("Increasing offset to fill the result limit"); } hits = sendQueryForEntryURIs(query, entries, solrServer, offset, -1); Date before = new Date(); for (URI uri : entries) { try { Entry entry = rm.getContextManager().getEntry(uri); if (entry != null) { PrincipalManager pm = entry.getRepositoryManager().getPrincipalManager(); // If linkReference or reference to a entry in the same // repository // check that the referenced metadata is accessible. if ((entry.getEntryType() == EntryType.Reference || entry.getEntryType() == EntryType.LinkReference) && entry.getCachedExternalMetadata() instanceof LocalMetadataWrapper) { Entry refEntry = entry.getRepositoryManager().getContextManager() .getEntry(entry.getExternalMetadataURI()); pm.checkAuthenticatedUserAuthorized(refEntry, AccessProperty.ReadMetadata); } else { // Check that the local metadata is accessible. pm.checkAuthenticatedUserAuthorized(entry, AccessProperty.ReadMetadata); } result.add(entry); if (result.size() == limit) { // we have enough results break; } } } catch (AuthorizationException ae) { hits--; continue; } } log.info("Entry fetching took " + (new Date().getTime() - before.getTime()) + " ms"); } while ((limit > result.size()) && (hits > (offset + limit))); return new QueryResult(result, hits); }
From source file:org.mycore.solr.search.MCRConditionTransformer.java
License:Open Source License
public static SolrQuery getSolrQuery(@SuppressWarnings("rawtypes") MCRCondition condition, List<MCRSortBy> sortBy, int maxResults) { String queryString = getQueryString(condition); SolrQuery q = applySortOptions(new SolrQuery(queryString), sortBy); q.setIncludeScore(true); q.setRows(maxResults == 0 ? Integer.MAX_VALUE : maxResults); String sort = q.getSortField(); LOGGER.info("Legacy Query transformed to: " + q.getQuery() + (sort != null ? " " + sort : "")); return q;//from w w w . j a v a2 s . c om }
From source file:org.obm.service.calendar.ContactService.java
License:Open Source License
public Set<Integer> searchContactIds(AccessToken token, String query, Collection<AddressBook> addrBooks, Integer limit, Integer offset) throws LocatorClientException { Set<Integer> contactIds = new HashSet<Integer>(); if (addrBooks.size() > 0) { SolrHelper solrHelper = solrHelperFactory.createClient(token); CommonsHttpSolrServer solrServer = solrHelper.getSolrContact(); StringBuilder sb = new StringBuilder(); sb.append("-is:archive "); sb.append("+addressbookId:("); int idx = 0; for (AddressBook book : addrBooks) { if (idx > 0) { sb.append(" OR "); }/*from w w w . ja v a 2 s .co m*/ sb.append(book.getUid()); idx++; } sb.append(")"); if (query != null && !"".equals(query)) { sb.append(" +(displayname:("); sb.append(query.toLowerCase()); sb.append("*) OR firstname:("); sb.append(query.toLowerCase()); sb.append("*) OR lastname:("); sb.append(query.toLowerCase()); sb.append("*) OR email:("); sb.append(query.toLowerCase()); sb.append("*))"); } SolrQuery params = new SolrQuery(); params.setQuery(sb.toString()); params.setIncludeScore(true); params.setRows(limit); params.setStart(offset); try { QueryResponse resp = solrServer.query(params); SolrDocumentList results = resp.getResults(); if (logger.isDebugEnabled()) { logger.debug( "SOLR query time for " + results.size() + " results: " + resp.getElapsedTime() + "ms."); } for (int i = 0; i < limit && i < results.size(); i++) { SolrDocument doc = results.get(i); Map<String, Object> payload = doc.getFieldValueMap(); contactIds.add((Integer) payload.get("id")); } } catch (SolrServerException e) { logger.error("Error querying server for '" + sb.toString() + " url: " + ClientUtils.toQueryString(params, false), e); } } return contactIds; }
From source file:org.rsc.liferay.solr.SolrIndexSearcher.java
License:Open Source License
protected SolrQuery translateQuery(long companyId, Query query, Sort[] sorts, int start, int end) throws Exception { QueryConfig queryConfig = query.getQueryConfig(); SolrQuery solrQuery = new SolrQuery(); if (queryConfig.isHighlightEnabled()) { solrQuery.setHighlight(true);/*w w w .ja va 2s.com*/ solrQuery.setHighlightFragsize(queryConfig.getHighlightFragmentSize()); solrQuery.setHighlightSnippets(queryConfig.getHighlightSnippetSize()); String localizedContentName = DocumentImpl.getLocalizedName(queryConfig.getLocale(), Field.CONTENT); String localizedTitleName = DocumentImpl.getLocalizedName(queryConfig.getLocale(), Field.TITLE); solrQuery.setParam("hl.fl", Field.CONTENT, localizedContentName, Field.TITLE, localizedTitleName); } solrQuery.setIncludeScore(queryConfig.isScoreEnabled()); QueryTranslatorUtil.translateForSolr(query); String queryString = query.toString(); StringBundler sb = new StringBundler(6); sb.append(queryString); sb.append(StringPool.SPACE); sb.append(StringPool.PLUS); sb.append(Field.COMPANY_ID); sb.append(StringPool.COLON); sb.append(companyId); solrQuery.setQuery(sb.toString()); if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS)) { solrQuery.setRows(0); } else { solrQuery.setRows(end - start); solrQuery.setStart(start); } if (sorts != null) { for (Sort sort : sorts) { if (sort == null) { continue; } String sortFieldName = sort.getFieldName(); if (DocumentImpl.isSortableTextField(sortFieldName)) { sortFieldName = DocumentImpl.getSortableFieldName(sortFieldName); } ORDER order = ORDER.asc; if (Validator.isNull(sortFieldName) || !sortFieldName.endsWith("sortable")) { sortFieldName = "score"; order = ORDER.desc; } if (sort.isReverse()) { order = ORDER.desc; } solrQuery.addSort(new SortClause(sortFieldName, order)); } } return solrQuery; }
From source file:org.sindice.siren.solr.TestSirenQParserPlugin.java
License:Apache License
/** * SRN-96//from w ww . ja v a 2 s. c om */ @Test public void testASCIIFoldingExpansion() throws IOException, SolrServerException { this.addNTripleString("id1", "<http://s> <http://p> \"cafe\" ."); this.addNTripleString("id2", "<http://s> <http://p> \"caf\" ."); SolrQuery query = new SolrQuery(); query.setQuery("cafe"); query.setQueryType("siren"); query.setIncludeScore(true); // should match the two documents, with same score QueryResponse response = wrapper.server.query(query); SolrDocumentList docList = response.getResults(); assertEquals(2, docList.getNumFound()); float score1 = (Float) docList.get(0).getFieldValue("score"); float score2 = (Float) docList.get(1).getFieldValue("score"); Assert.assertTrue("Score should be identical", score1 == score2); query = new SolrQuery(); query.setQueryType("siren"); query.set(SirenParams.NQ, "* * 'cafe'"); query.setIncludeScore(true); // should match the two documents, with same score response = wrapper.server.query(query); docList = response.getResults(); assertEquals(2, docList.getNumFound()); score1 = (Float) docList.get(0).getFieldValue("score"); score2 = (Float) docList.get(1).getFieldValue("score"); Assert.assertTrue("Score should be identical", score1 == score2); // should match the two documents, but should assign different score // id2 should receive better score than id1 query = new SolrQuery(); query.setQuery("caf"); query.setQueryType("siren"); query.setIncludeScore(true); response = wrapper.server.query(query); docList = response.getResults(); assertEquals(2, docList.getNumFound()); if (docList.get(0).getFieldValue("url").equals("id1")) { score1 = (Float) docList.get(0).getFieldValue("score"); score2 = (Float) docList.get(1).getFieldValue("score"); } else { score2 = (Float) docList.get(0).getFieldValue("score"); score1 = (Float) docList.get(1).getFieldValue("score"); } Assert.assertTrue("id2 should get higher score than id1", score1 < score2); query = new SolrQuery(); query.setQueryType("siren"); query.set(SirenParams.NQ, "* * 'caf'"); query.setIncludeScore(true); response = wrapper.server.query(query); System.out.println(response); docList = response.getResults(); assertEquals(2, docList.getNumFound()); if (docList.get(0).getFieldValue("url").equals("id1")) { score1 = (Float) docList.get(0).getFieldValue("score"); score2 = (Float) docList.get(1).getFieldValue("score"); } else { score2 = (Float) docList.get(0).getFieldValue("score"); score1 = (Float) docList.get(1).getFieldValue("score"); } Assert.assertTrue("id2 should get higher score than id1", score1 < score2); }