首页 > 解决方案 > SOLr:仅当特定字段为“未定义”时才返回结果

问题描述

在 solr 中,某些文档可能具有该文档未定义的特定字段。我想知道如何只返回未定义此字段的那些。该字段通常具有数值。从我到目前为止所尝试的,使用 frange l=0.0,将返回具有未定义字段的文档,但也会返回那些定义为“0”的文档,这是我不想要的。

我曾想过设置一个默认值并检查它,但是在构建索引时正在动态设置有问题的 solr 字段。这是通过考虑当前对象存在的数组中的项目来完成的。因此,如果字段名称在该对象的数组中,则相关字段将使用 solr 中的值定义,否则根本不会定义。因此,我几乎不可能使用默认值。

有什么想法吗?

谢谢!

标签: apachesolr

解决方案


您可以通过选择所有文档 ( ) 来查询字段中没有特定值的文档*:*,然后删除那些在字段中具有值的文档:

q=*:* -field:[* TO *]

这将为您提供所有field未定义的文档。

通常 Solr 会在*:*内部为纯否定查询添加前缀,所以q=-field:[* TO *]应该可以工作。


推荐阅读