在solr文件中写道: facet.mincount参数指定构面字段包含在响应中所需的最小计数。如果字段的计数低于最小值,则不返回字段的方面。 默认值为0。 此参数可以基于每个字段指定,语法为 f.fieldname.facet.mincount。
如何在java中执行此操作?我没有看到仅针对整个查询的字段的query.setMinCount。
答案 0 :(得分:2)
在java中,我习惯直接使用SolrJ,没有Spring或其他框架。
我建议使用SolrQuery
,这是通常用于准备查询参数的类。
正如您所看到的,在准备Solr查询时有许多参数,但即使使用SolrJ,并非所有参数都具有等效方法。
鉴于此,f.fieldname.facet.mincount
参数没有方法。
但SolrQuery
有一个由其父add
继承的方法ModifiableSolrParams
。您可以使用此方法找出标准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
,它有一个costructor FacetOptions.FacetParameter(String parameter, Object value)
,它似乎接受各种参数/值。在某种程度上,FacetParameter
类似于我们在SolrJ add
方法中看到的行为。