@Override public void attachFacets(SolrQuery query, Map<String, SearchFacetDTO> namedFacetMap, SearchCriteria searchCriteria) { query.setFacet(true); for (Entry<String, SearchFacetDTO> entry : namedFacetMap.entrySet()) { SearchFacetDTO dto = entry.getValue(); ExtensionResultStatusType status = searchExtensionManager.getProxy().attachFacet(query, entry.getKey(), dto, searchCriteria); if (ExtensionResultStatusType.NOT_HANDLED.equals(status)) { List<SearchFacetRange> facetRanges = searchFacetDao.readSearchFacetRangesForSearchFacet(dto.getFacet()); if (searchExtensionManager != null) { searchExtensionManager.getProxy().filterSearchFacetRanges(dto, facetRanges); } if (CollectionUtils.isNotEmpty(facetRanges)) { for (SearchFacetRange range : facetRanges) { query.addFacetQuery(getSolrTaggedFieldString(entry.getKey(), "key", range)); } } else { query.addFacetField(getSolrTaggedFieldString(entry.getKey(), "ex", null)); } } } }
protected void setFacets ( SolrQuery squery, String [ ] facets ) { // If String array is not null and is longer than 0 if ( facets != null && facets.length > 0 ){ // set faceting enable squery.setFacet ( true ) ; squery.setFacetMinCount ( 1 ) ; squery.setFacetSort ( FacetParams.FACET_SORT_COUNT ) ; squery.addFacetField ( facets ) ; } }
private void addFacetParameters(SolrQuery query) { query.setFacet(true); query.addFacetField(facetFieldExtractor.getRandomFacetField()); query.setFacetMinCount(facetMinCount); query.setFacetLimit(facetLimit); if(facetMethod != null && !"".equals(facetMethod)) { query.add("facet.method", facetMethod); } }
public Multimap<String,InteractorIdCount> searchInteractors(SolrQuery originalQuery, String[] interactorTypeMis) throws IntactSolrException { SolrQuery query = originalQuery.getCopy(); query.setRows(0); query.setFacet(true); query.setFacetMinCount(1); query.setFacetLimit(Integer.MAX_VALUE); query.setFacetSort(FacetParams.FACET_SORT_COUNT); Multimap<String,InteractorIdCount> interactors = HashMultimap.create(); Map<String,String> fieldNameToTypeMap = new HashMap<String,String>(interactorTypeMis.length); for (String mi : interactorTypeMis) { final String fieldName = createFieldName(mi); query.addFacetField(fieldName); fieldNameToTypeMap.put(fieldName, mi); } QueryResponse queryResponse = executeQuery(query); for (Map.Entry<String,String> entry : fieldNameToTypeMap.entrySet()) { FacetField ff = queryResponse.getFacetField(entry.getKey()); if (ff != null && ff.getValues() != null) { for (FacetField.Count c : ff.getValues()) { interactors.put(entry.getValue(), new InteractorIdCount(c.getName(), c.getCount())); } } } return interactors; }
/** remove a facet query * * @param q the facet query to remove * @return true if the facet query was removed false otherwise */ public boolean removeFacetQuery(String q) { boolean b = this.remove(FacetParams.FACET_QUERY, q); if (this.get(FacetParams.FACET_FIELD) == null && this.get(FacetParams.FACET_QUERY) == null) { this.setFacet(false); } return b; }
private boolean enableFaceting(SolrQuery solrQuery, FacetQuery query) { FacetOptions facetOptions = query.getFacetOptions(); if (facetOptions == null || !facetOptions.hasFacets()) { return false; } solrQuery.setFacet(true); solrQuery.setFacetMinCount(facetOptions.getFacetMinCount()); solrQuery.setFacetLimit(facetOptions.getPageable().getPageSize()); if (facetOptions.getPageable().getPageNumber() > 0) { long offset = Math.max(0, facetOptions.getPageable().getOffset()); solrQuery.set(FacetParams.FACET_OFFSET, "" + offset); } if (FacetOptions.FacetSort.INDEX.equals(facetOptions.getFacetSort())) { solrQuery.setFacetSort(FacetParams.FACET_SORT_INDEX); } return true; }
public Set<String> getOntologyNames() throws SolrServerException { if (ontologyNames == null) { SolrQuery query = new SolrQuery("*:*"); query.setStart(0); query.setRows(0); // prepare faceting query.setFacet(true); query.setParam(FacetParams.FACET_FIELD, "ontology"); query.setFacetLimit(10); query.setFacetMinCount(1); query.set(FacetParams.FACET_OFFSET, 0); // order by unique id query.addSortField(OntologyFieldNames.ID, SolrQuery.ORDER.asc); QueryResponse response = search(query, null); FacetField facetField = response.getFacetField("ontology"); if (facetField.getValues() == null) { return Collections.EMPTY_SET; } ontologyNames = new HashSet<String>( facetField.getValues().size() ); for (FacetField.Count c : facetField.getValues()) { ontologyNames.add(c.getName()); } } return ontologyNames; }
@Override public List<String> createTypeNames(HttpSolrClient solrServer) throws Exception { List<String> names = new ArrayList<>(); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.addFacetField(field); query.setFacet(true); query.setFacetMinCount(1); query.setFacetSort(FacetParams.FACET_SORT_INDEX); query.setRows(0); query.setParam("omitHeader", true); QueryResponse rsp = solrServer.query(query); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "SOLR query done: " + query.toString()); } List<Count> uniqueFacetFields = rsp.getFacetFields().get(0).getValues(); for (Count field : uniqueFacetFields) { names.add(field.getName()); } return names; }
/** remove a facet query * * @param q the facet query to remove * @return true if the facet query was removed false otherwise */ public boolean removeFacetQuery(String q) { boolean b = this.remove(FacetParams.FACET_QUERY, q); if (this.get(FacetParams.FACET_FIELD) == null && this.get(FacetParams.FACET_QUERY) == null) { this.setFacet(false); } return b; }
/** remove a facet query * * @param q the facet query to remove * @return true if the facet query was removed false otherwise */ public boolean removeFacetQuery(String q) { boolean b = this.remove(FacetParams.FACET_QUERY, q); if (this.get(FacetParams.FACET_FIELD) == null && this.get(FacetParams.FACET_QUERY) == null) { this.setFacet(false); } return b; }
/** remove a facet field * * @param name Name of the facet field to be removed. * * @return true, if the item was removed. <br> * false, if the facet field was null or did not exist. */ public boolean removeFacetField(String name) { boolean b = this.remove(FacetParams.FACET_FIELD, name); if (this.get(FacetParams.FACET_FIELD) == null && this.get(FacetParams.FACET_QUERY) == null) { this.setFacet(false); } return b; }
/** remove a facet field * * @param name Name of the facet field to be removed. * * @return true, if the item was removed. <br /> * false, if the facet field was null or did not exist. */ public boolean removeFacetField(String name) { boolean b = this.remove(FacetParams.FACET_FIELD, name); if (this.get(FacetParams.FACET_FIELD) == null && this.get(FacetParams.FACET_QUERY) == null) { this.setFacet(false); } return b; }
/** remove a facet field * * @param name Name of the facet field to be removed. * * @return true, if the item was removed. <br> * false, if the facet field was null or did not exist. */ public boolean removeFacetField(String name) { boolean b = this.remove(FacetParams.FACET_FIELD, name); if (this.get(FacetParams.FACET_FIELD) == null && this.get(FacetParams.FACET_QUERY) == null) { this.setFacet(false); } return b; }
public Set<String> getOntologyNames() throws SolrServerException { if (ontologyNames == null) { SolrQuery query = new SolrQuery("*:*"); query.setStart(0); query.setRows(0); query.setFacet(true); query.setParam(FacetParams.FACET_FIELD, "ontology"); QueryResponse response = search(query); FacetField facetField = response.getFacetField("ontology"); if (facetField.getValues() == null) { return Collections.EMPTY_SET; } ontologyNames = new HashSet<String>( facetField.getValues().size() ); for (FacetField.Count c : facetField.getValues()) { ontologyNames.add(c.getName()); } } return ontologyNames; }
SolrQuery query = new SolrQuery(); query.setQuery(queryString); query.setFacet(true); query.set("wt", "json"); query.set("indent",true); query.setRows(0); query.addFacetField("outcome_type"); QueryResponse resp = server.query(query);
public static void main() { String url = "http://localhost:8983/solr/autocomplete"; SolrServer solrServer = new HttpSolrServer(url); SolrQuery query = new SolrQuery(); query.set("q", "*"); query.addFilterQuery("name:*"); query.setFacet(true); query.addFacetField("name"); System.out.println(query); QueryResponse queryResponse = solrServer.query(query); List<FacetField> facetFields = queryResponse.getFacetFields(); FacetField cnameMainFacetField = queryResponse.getFacetField("name"); for (Count cnameAndCount : cnameMainFacetField.getValues()) { String cnameMain = cnameAndCount.getName(); System.out.println(cnameMain); System.out.println(cnameAndCount.getCount()); }
public SolrQuery buildQueryFacetByField(Query<?> query, String field) { SolrQuery solrQuery = buildQuery(query); Query.MappedKey mappedKey = mapFullyDenormalizedKey(query, field); String solrField = specialFields.get(mappedKey); if (solrField == null) { String internalType = mappedKey.getInternalType(); if (internalType != null) { solrField = getSolrField(internalType).searchPrefix + mappedKey.getIndexKey(null); } } if (solrField == null) { throw new UnsupportedIndexException(this, field); } solrQuery.setFacet(true); solrQuery.addFacetField(solrField); return addComment(solrQuery, query); }
/** * @param query * @param nRows * @param fields * @param filter * @return the response * @throws SolrServerException */ public QueryResponse query(String query, int nRows, String[] fields,String filter) throws SolrServerException { SolrQuery q = new SolrQuery(); q.setQuery(query); q.setRows(nRows); q.setFields(fields); if (filter != null) { q.setFilterQueries(filter); } q.setFacet(false); return solrIndex.query(q); } }
/** * @param query * @param nRows * @param fields * @param filter * @return the response * @throws SolrServerException */ public QueryResponse query(String query, int nRows, String[] fields,String filter) throws SolrServerException { SolrQuery q = new SolrQuery(); q.setQuery(query); q.setRows(nRows); q.setFields(fields); if (filter != null) { q.setFilterQueries(filter); } q.setFacet(false); return solrIndex.query(q); } }
SolrClient solr = new HttpSolrClient.Builder("<url>").build(); SolrQuery query = new SolrQuery(); query.setQuery("collector:" + input); query.addFilterQuery("(doc_type:" + entity + ")"); query.addSort("lastUpdatedAt", ORDER.desc); query.setFacet(true); query.setStart(pagenumber); query.setRows(pagesize); QueryResponse response = solr.query(query);