我正在存储包含文字Content
和不同Tags
的文档。搜索时我使用过滤查询删除重复项:q=*:*&fq={!collapse field=Content}
接下来,我想显示我正在使用的小组查询后的每个组中的文档数量:q=*:*&facet=true&facet.field=Tags
问题是使用不同Tags
标记的相同文档。例如。
我有文件A
索引了四次;标记x
两次,标记y
两次。我想获得一个像这样的表:
+-------------+
| Tag Count |
+-------------+
| x 1 |
| y 1 |
+-------------+
所以我尝试将两个查询组合在一起:q=*:*&facet=true&facet.field=Tags&fq={!collapse field=Content}
。
但是,这将首先应用过滤器查询,然后执行构面,从而产生:
+----------------+
| Tag Count |
+----------------+
| x 0 (or 1) |
| y 1 (or 1) |
+----------------+
所以,我想分别对每个方面应用过滤查询。这怎么可能?没有facet.fq
参数。 facet.query={!collapse field=Content}Tags
给了我SolrServerException: No live SolrServers available to handle this request
。
答案 0 :(得分:1)
如果我理解你想要每个标签的唯一内容数量,那么,对吗?如果是这样,json facets将执行此操作:
curl http://.../query -d 'q=*:*&json.facet={
tags:{terms:{
field : Tag,
facet:{ "unique" : "unique(Content)" }
}}
}'