Solr-强制构面显示任何文档中当前不存在的枚举字段

时间:2019-01-02 12:12:06

标签: solr

我有一个字段,该字段可以具有一组已知的字符串值,并且为 EnumField 类型。

是否有一种方法可以强制 Solr 为其返回所有构面值? facet.mincount=0属性仅在存在具有相应方面字段值的现有文档时才有效,但是在当前搜索中使用,例如fq。

但是,如果当前文档都没有该值,那么它根本不会显示。


考虑一下,我有一个字段type,它被定义为一个枚举,可以有值AB。假设我已经导入了此类文档:

[{
 "name_s": "Doc 1",
 "type": "A",
 "user_s": "Foo"
}, {
 "name_s": "Doc 2",
 "user_s": "Bar"
}]

如果我通过用户“ Bar”使用过滤器查询在字段type上进行构面查询,则返回的唯一构面值是计数为0的“ A”。我的目标是强制执行此操作在这种情况下(并且都具有计数0)返回值“ A”和“ B”。

3 个答案:

答案 0 :(得分:1)

根据邮件列表,目前无法执行此操作。

答案 1 :(得分:0)

如果您只是想查找字段类型中存在的所有术语,则可以使用Solr的术语组件轻松找到它。

Doc:https://lucene.apache.org/solr/guide/6_6/the-terms-component.html

Doc适用于6.6版,您可以相应地更改其当前正在使用的版本。

以下是示例网址:http://localhost:8983/solr/collection/terms?terms.fl=type

答案 2 :(得分:-1)

您可以使用tagging and excluding filters来实现:

您首先标记过滤器查询:fq={!tag=my_tag}user_s:Bar

然后在构面中使用排除标记:facet.field={!ex=my_tag}type