0

索尔 4.2.1

似乎无论我尝试什么,我都无法从 exists() 函数中得到正确的结果。我正在使用它来检查模式中是否存在“text_general”类型的字段。它有点工作,但是大约 10% 的时间是错误的。

这是我在查询的 FL 部分中使用的简化代码来测试它。

fl=list:if(exists(title),1,0),title

这是我得到的不正确的示例记录。

<str name="title">Tonight Tonight</str> #Obviously exists
<long name="list">0</long></doc> #Still returns 0

这是我的架构定义,也许 text_general 有这个问题?我在文档中找不到任何关于它的内容。

<field name="title" type="text_general" indexed="true" stored="true" required="false" multiValued="false" />

谢谢

4

1 回答 1

0

If you want to check if the field exists or not check for Negative queries.

-field:[* TO *] finds all documents without a value for field

You can also try -field:["" TO *]

于 2013-07-08T05:08:47.437 回答