在solr文档中,它是这样写的: facet.mincount参数指定了响应中包含的facet字段所需的最小计数。如果字段的计数低于最小值,则不返回字段的方面。默认值为0。可以使用f.fieldname.facet.mincount.语法在每个字段的基础上指定此参数。
如何在java中做到这一点?我不认为字段仅用于整个查询的query.setMinCount。
http://docs.spring.io/spring-data/solr/docs/current/api/org/springframework/data/solr/core/query/FacetOptions.html
发布于 2016-09-10 22:18:08
在java中,我习惯于直接使用SolrJ,而不使用Spring或其他框架。
我建议使用SolrQuery
,这是通常用于准备查询参数的类。
正如您已经看到的,在准备Solr查询时有许多参数,但是,即使使用SolrJ,也不是所有参数都有等效的方法。
在此情况下,没有f.fieldname.facet.mincount
参数的方法。
但是SolrQuery
有一个由父ModifiableSolrParams
继承的方法add
。您可以使用此方法找出标准SolrQuery
接口未处理的每一种情况。
例如,此查询添加:
SolrQuery q = new SolrQuery()
q.setQuery("*:*")
q.setFacet(true);
q.addFacetField("country");
q.add("f.country.facet.mincount", "1");
考虑到这一点,如果您愿意,您甚至可以只使用add方法:
SolrQuery q = new SolrQuery()
q.add("q", "*:*")
q.add("facet", "true");
q.add("facet.field", "country");
q.add("f.country.facet.mincount", "1");
另一方面,如果您想使用Spring,那么,看看FacetOptions
类,我看到有一个嵌套的静态类FacetOptions.FacetParameter
,它有一个构造函数FacetOptions.FacetParameter(String parameter, Object value)
,它似乎接受各种参数/值。在某种程度上,FacetParameter
类似于我们刚才在SolrJ add
方法中看到的行为。
https://stackoverflow.com/questions/39417624
复制相似问题