Solr:首先是构面,然后是过滤查询
Solr: First facet, then filter query
我正在存储包含文本 Content
和不同 Tags
的文档。搜索时,我使用过滤器查询来删除重复项:q=*:*&fq={!collapse field=Content}
接下来,我想显示我正在使用以下方面查询的每个组中的文档数:q=*:*&facet=true&facet.field=Tags
问题是用不同 Tags
标记的相同文档。例如。
我将文档 A
索引了四次;两次使用标签 x
,两次使用标签 y
。我想获得一个 table 像:
+-------------+
| 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
.
如果我理解正确的话你想要 'count of unique Content per Tag',对吗?如果是这样,json facets 会这样做:
curl http://.../query -d 'q=*:*&json.facet={
tags:{terms:{
field : Tag,
facet:{ "unique" : "unique(Content)" }
}}
}'
我正在存储包含文本 Content
和不同 Tags
的文档。搜索时,我使用过滤器查询来删除重复项:q=*:*&fq={!collapse field=Content}
接下来,我想显示我正在使用以下方面查询的每个组中的文档数:q=*:*&facet=true&facet.field=Tags
问题是用不同 Tags
标记的相同文档。例如。
我将文档 A
索引了四次;两次使用标签 x
,两次使用标签 y
。我想获得一个 table 像:
+-------------+
| 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
.
如果我理解正确的话你想要 'count of unique Content per Tag',对吗?如果是这样,json facets 会这样做:
curl http://.../query -d 'q=*:*&json.facet={
tags:{terms:{
field : Tag,
facet:{ "unique" : "unique(Content)" }
}}
}'