List of usage examples for org.springframework.data.solr.core.query FacetQuery getFacetOptions
@Nullable FacetOptions getFacetOptions();
From source file:org.springframework.data.solr.core.DefaultQueryParser.java
private boolean enableFaceting(SolrQuery solrQuery, FacetQuery query) { FacetOptions facetOptions = query.getFacetOptions(); if (facetOptions == null || (!facetOptions.hasFields() && !facetOptions.hasFacetQueries() && !facetOptions.hasPivotFields())) { return false; }/*w w w. ja v a2 s . c o m*/ solrQuery.setFacet(true); solrQuery.setFacetMinCount(facetOptions.getFacetMinCount()); solrQuery.setFacetLimit(facetOptions.getPageable().getPageSize()); if (facetOptions.getPageable().getPageNumber() > 0) { solrQuery.set(FacetParams.FACET_OFFSET, facetOptions.getPageable().getOffset()); } if (FacetOptions.FacetSort.INDEX.equals(facetOptions.getFacetSort())) { solrQuery.setFacetSort(FacetParams.FACET_SORT_INDEX); } return true; }
From source file:org.springframework.data.solr.core.DefaultQueryParser.java
private void appendFacetingOnFields(SolrQuery solrQuery, FacetQuery query) { FacetOptions facetOptions = query.getFacetOptions(); if (facetOptions.getPageable().getPageNumber() > 0) { solrQuery.set(FacetParams.FACET_OFFSET, facetOptions.getPageable().getOffset()); }/*from www. j a v a 2 s . c o m*/ solrQuery.addFacetField(convertFieldListToStringArray(facetOptions.getFacetOnFields())); if (facetOptions.hasFacetPrefix()) { solrQuery.setFacetPrefix(facetOptions.getFacetPrefix()); } for (FieldWithFacetParameters parametrizedField : facetOptions.getFieldsWithParameters()) { addPerFieldFacetParameters(solrQuery, parametrizedField); if (parametrizedField.getSort() != null && FacetOptions.FacetSort.INDEX.equals(parametrizedField.getSort())) { addFieldSpecificParameterToSolrQuery(solrQuery, parametrizedField, new FacetParameter(FacetParams.FACET_SORT, FacetParams.FACET_SORT_INDEX)); } } }
From source file:org.springframework.data.solr.core.DefaultQueryParser.java
private void appendFacetingQueries(SolrQuery solrQuery, FacetQuery query) { FacetOptions facetOptions = query.getFacetOptions(); for (SolrDataQuery fq : facetOptions.getFacetQueries()) { String facetQueryString = getQueryString(fq); if (StringUtils.isNotBlank(facetQueryString)) { solrQuery.addFacetQuery(facetQueryString); }//from ww w . j a v a 2s . co m } }
From source file:org.springframework.data.solr.core.DefaultQueryParser.java
private void appendFacetingOnPivot(SolrQuery solrQuery, FacetQuery query) { if (VersionUtil.isSolr3XAvailable()) { throw new UnsupportedOperationException( "Pivot Facets are not available for solr version lower than 4.x - Please check your depdendencies."); }//from w ww .j a v a 2 s . c om FacetOptions facetOptions = query.getFacetOptions(); String[] pivotFields = convertFieldListToStringArray(facetOptions.getFacetOnPivots()); solrQuery.addFacetPivotField(pivotFields); }
From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java
@Test public void testConstructSolrQueryWithFacetSort() { FacetQuery query = new SimpleFacetQuery(new Criteria("field_1").is("value_1")) .setFacetOptions(new FacetOptions("facet_1").setFacetSort(FacetOptions.FacetSort.INDEX)); SolrQuery solrQuery = queryParser.constructSolrQuery(query); Assert.assertEquals("index", solrQuery.getFacetSortString()); query.getFacetOptions().setFacetSort(FacetOptions.FacetSort.COUNT); solrQuery = queryParser.constructSolrQuery(query); Assert.assertEquals("count", solrQuery.getFacetSortString()); }
From source file:org.springframework.data.solr.core.query.SimpleQueryTest.java
@Test public void testAddFacetOptions() { FacetOptions facetOptions = new FacetOptions("field_1", "field_2"); FacetQuery query = new SimpleFacetQuery().setFacetOptions(facetOptions); Assert.assertEquals(facetOptions, query.getFacetOptions()); }
From source file:org.springframework.data.solr.core.query.SimpleQueryTest.java
@Test public void testAddFacetOptionsWithNullValue() { FacetQuery query = new SimpleFacetQuery().setFacetOptions(null); Assert.assertNull(query.getFacetOptions()); }
From source file:org.springframework.data.solr.core.QueryParser.java
private void appendFacetingOnFields(SolrQuery solrQuery, FacetQuery query) { FacetOptions facetOptions = query.getFacetOptions(); if (facetOptions == null || !facetOptions.hasFields()) { return;/*w ww .j a va 2 s. co m*/ } solrQuery.setFacet(true); solrQuery.addFacetField(convertFieldListToStringArray(facetOptions.getFacetOnFields())); solrQuery.setFacetMinCount(facetOptions.getFacetMinCount()); solrQuery.setFacetLimit(facetOptions.getPageable().getPageSize()); if (facetOptions.getPageable().getPageNumber() > 0) { solrQuery.set(FacetParams.FACET_OFFSET, facetOptions.getPageable().getOffset()); } if (FacetOptions.FacetSort.INDEX.equals(facetOptions.getFacetSort())) { solrQuery.setFacetSort(FacetParams.FACET_SORT_INDEX); } }
From source file:org.springframework.data.solr.core.ResultHelper.java
static Map<Field, Page<FacetFieldEntry>> convertFacetQueryResponseToFacetPageMap(FacetQuery query, QueryResponse response) {/*from w w w.j a v a2s . c o m*/ Assert.notNull(query, "Cannot convert response for 'null', query"); if (!hasFacets(query, response)) { return Collections.emptyMap(); } Map<Field, Page<FacetFieldEntry>> facetResult = new HashMap<Field, Page<FacetFieldEntry>>(); if (CollectionUtils.isNotEmpty(response.getFacetFields())) { int initalPageSize = query.getFacetOptions().getPageable().getPageSize(); for (FacetField facetField : response.getFacetFields()) { if (facetField != null && StringUtils.hasText(facetField.getName())) { Field field = new SimpleField(facetField.getName()); if (CollectionUtils.isNotEmpty(facetField.getValues())) { List<FacetFieldEntry> pageEntries = new ArrayList<FacetFieldEntry>(initalPageSize); for (Count count : facetField.getValues()) { if (count != null) { pageEntries .add(new SimpleFacetFieldEntry(field, count.getName(), count.getCount())); } } facetResult.put(field, new SolrResultPage<FacetFieldEntry>(pageEntries, query.getFacetOptions().getPageable(), facetField.getValueCount(), null)); } else { facetResult.put(field, new SolrResultPage<FacetFieldEntry>(Collections.<FacetFieldEntry>emptyList(), query.getFacetOptions().getPageable(), 0, null)); } } } } return facetResult; }