有没有办法计算 solr 中不同方面的数量?
这是一个示例方面:
- 相机:20
- 电脑:80
- 显示器:40
- 笔记本电脑:120
- 平板电脑:30
我需要在这里得到“5”,就像 5 种不同的电子产品一样。当然,我可以计算方面,但其中一些内部有很多项目,并且获取和计算它们确实会减慢速度。
您需要应用 Solr Patch SOLR-2242来获取 Facet 不同计数。
在 SOLR 5.1 中将是一个带有函数“unique(state)”的“JSON Facet API”。 http://yonik.com/solr-facet-functions/
不是这个问题的确切答案,但如果 facet distinct count 对任何人都不起作用,您可以使用以下方法获取该信息group.ngroups
:
group = true
group.field = [field you are faceting on]
group.ngroups = true
这种方法的缺点是,如果您想要未分组的结果,则必须再次运行查询。
当然,建议使用补丁,但是对于一个简单的刻面执行此操作的俗气方法,就像你在这里一样,只是使用刻面的长度除以 2。例如,因为你正在刻面type
:
facetCount = facet_counts.facet_fields.type.length/2
使用这个 GET 请求:
http://localhost:8983/solr/core_name/select?json.facet={x:"unique(electronic_items)"}&q=*:*&rows=0