0

我正在尝试向使用 SOLR 进行查询的 API 发出 url 请求。

我有很多数据,其中很多字段包含不同的值,并且通常其中一些字段包含空值。

我想在其中检索特定字段不为空但包含一些实际值的所有数据的查询。

例如,每个条目都包含一个名为 tags 的字段,它是一个标签数组。例如,标签可以是单词 test。

我尝试过 -tags:[* TO *] ,这会导致返回所有标签为空的数据集。

我也尝试过 tags:[* TO *] 返回所有数据,其中标签为空,标签实际设置在哪里。

我一直在尝试各种事情来解决最后一种情况,即只返回带有值的标签,希望你能帮助我?

4

2 回答 2

2

您的问题有点令人困惑,因为您使用了诸如“检索数据”和“检索字段”之类的术语,这可能会令人困惑。在 SOLR 中,查询指定检索哪些文档(或记录)。

如果您想要在“标签”字段中具有某些价值的所有文档,您可以使用

(tags:*)

如果您想要在“标签”字段中没有值的所有文档,那么您可以使用:

(*:* AND NOT tags:*)  

或者

(*:* AND -tags:*)
于 2016-12-18T16:36:42.887 回答
0

andAND- 不同,后者是您必须在查询中使用的分隔符。

您的查询可能只是搜索(and默认字段中包含某处的文档)或 ( deleted:false) 或 ( tags:[* TO *])。

使用适当的分隔符和周围的空格来分组多个条件。我还建议fq对任何静态的(例如deleted:false)使用过滤查询(),因为它允许将该查询与您的实际查询分开缓存。

于 2016-12-18T14:58:25.847 回答