我正在尝试向使用SOLR进行查询的API发出网址请求。
我有很多数据包含许多包含不同值的字段,而且这些字段中的一些通常会包含空值。
我想进行查询,检索特定字段不为空的所有数据,但包含一些实际值。
例如,每个条目都包含一个名为tags的字段,这是一个标记数组。标签可以是例如单词test。
我尝试过-tags:[* TO *],这会导致返回标记为null的所有数据集。
我还尝试过标签:[* TO *],它返回所有数据,标签为空,标签实际设置在哪里。
我一直在尝试各种各样的事情来处理最后一个案例,其中只返回带有值的标签,我希望你能帮助我吗?
答案 0 :(得分:0)
and
与AND
不同 - 这是您必须在查询中使用的分隔符。
您的查询可能只是搜索(默认字段中包含and
的文档)或(deleted:false
)或(tags:[* TO *]
)。
使用带有空格的适当分隔符来组合多个条件。我还建议对任何静态的查询(例如fq
)使用过滤查询(deleted:false
),因为这样可以将查询与实际查询分开缓存。
答案 1 :(得分:0)
您的问题有点令人困惑,因为您使用"检索数据等字词"和"检索字段"这可能令人困惑。在SOLR中,查询指定检索哪些文档(或记录)。
如果您想要所有在该字段中具有某些价值的文档"标记",您可以使用
(tags:*)
如果您想要所有在该字段中没有值的文档"标记",那么您可以使用:
(*:* AND NOT tags:*)
或
(*:* AND -tags:*)