我想写一个FacetQuery,除了一个过滤条件(fq)之外可能没有任何条件。以下查询是我想使用spring-data-solr API构建的示例。
http://localhost:8983/solr/jpevents/select?q=*:*&fq=categoryIds:(1101)&facet=true&facet.mincount=1&facet.limit=1&facet.field=primaryCategoryId
如何在FacetQuery中设置查询参数(q = *:*)?
环境:我正在使用Spring-data-solr 1.0.0.RELEASE和Solr 4.4.0和Spring 3.2.4.RELEASE编写基于Spring MVC的Search API。
最佳答案
您可以将@Query
和@Facet
结合使用
@Facet(fields={"primaryCategoryId"}, minCount=1, limit=1)
@Query(value="*:*", filters="categoryIds:(?0)")
public FacetPage<JPEvents> XYZ(List<Long> categories, Pageable page);
或使用
FacetQuery
执行SolrTemplate
。 FacetQuery query = new SimpleFacetQuery(new SimpleStringCriteria("*:*"))
.setFacetOptions(new FacetOptions("primaryCategoryId")
.setFacetMinCount(1).setFacetLimit(1));
query.setPageRequest(pageable);
solrTemplate.queryForFacetPage(query, JPEvents.class);