我有一个原生的facet脚本,用于检查文档中的特定字段(映射到long类型)是否为空,这就是我的工作方式:
Object fieldValue = doc().get("fieldName");
return fieldValue == ScriptDocValues.EMPTY;
但是,对于某些文档,即使字段为空,它也会返回false(我已使用exists过滤器检查过此内容)。此行为不一致,通常返回正确的结果。此外,具有相同映射,相同版本和相同代码的不同主机中的相同文档将返回正确的结果。
有没有更好的方法来检查字段是否为空?
我正在使用带有facet脚本1.1.2和java 1.7u17的ElasticSearch 0.90.5。
答案 0 :(得分:0)
检查空字段的正确方法是:
ScriptDocValues value = (ScriptDocValues) doc().get("field2");
return value.isEmpty();