apache - SOLr:仅当特定字段为“未定义”时才返回结果
问题描述
在 solr 中,某些文档可能具有该文档未定义的特定字段。我想知道如何只返回未定义此字段的那些。该字段通常具有数值。从我到目前为止所尝试的,使用 frange l=0.0,将返回具有未定义字段的文档,但也会返回那些定义为“0”的文档,这是我不想要的。
我曾想过设置一个默认值并检查它,但是在构建索引时正在动态设置有问题的 solr 字段。这是通过考虑当前对象存在的数组中的项目来完成的。因此,如果字段名称在该对象的数组中,则相关字段将使用 solr 中的值定义,否则根本不会定义。因此,我几乎不可能使用默认值。
有什么想法吗?
谢谢!
解决方案
您可以通过选择所有文档 ( ) 来查询字段中没有特定值的文档*:*
,然后删除那些在字段中具有值的文档:
q=*:* -field:[* TO *]
这将为您提供所有field
未定义的文档。
通常 Solr 会在*:*
内部为纯否定查询添加前缀,所以q=-field:[* TO *]
应该可以工作。
推荐阅读
- r - 使用 ggplot 创建平滑直方图和等高线图
- python - style.map() 查询两次时返回不同的值
- azure - Azure Kubernetes 中的应用程序日志记录
- python - 打印对话框 tkinter
- python - 有没有办法随机化网格中的每个单元格?
- sas - 赋值3个值使一条记录变成三条记录
- reactjs - 如何将数据从 FlatList 访问到要在函数中使用的父组件
- python-3.x - 熊猫文本文件到 CSV
- javascript - 打印给用户的单选按钮值的总和
- javascript - 我正在学习python和JS。试图写应用程序女巫显示天气。但我收到错误无法加载资源:net::ERR_FILE_NOT_FOUND