本机构面脚本中的空字段

时间:2014-03-20 11:05:49

标签: java elasticsearch

我有一个原生的facet脚本,用于检查文档中的特定字段(映射到long类型)是否为空,这就是我的工作方式:

Object fieldValue = doc().get("fieldName"); return fieldValue == ScriptDocValues.EMPTY;

但是,对于某些文档,即使字段为空,它也会返回false(我已使用exists过滤器检查过此内容)。此行为不一致,通常返回正确的结果。此外,具有相同映射,相同版本和相同代码的不同主机中的相同文档将返回正确的结果。

有没有更好的方法来检查字段是否为空?

我正在使用带有facet脚本1.1.2和java 1.7u17的ElasticSearch 0.90.5。

1 个答案:

答案 0 :(得分:0)

检查空字段的正确方法是: ScriptDocValues value = (ScriptDocValues) doc().get("field2"); return value.isEmpty();