我的文档有一个值为“”的关键字,我如何通过java Elasticsearch搜索它?
没有像代码那样的效果:
query.must(QueryBuilders.boolQuery()
.should(QueryBuilders.regexpQuery("paymentRetCode", ""))
);
答案 0 :(得分:1)
您需要使用script
查询来检查字符串的长度是否为0:
Script script = new Script(ScriptType.INLINE, "myscript", "doc.paymentRetCode.value.length() == 0", new HashMap())
query.must(QueryBuilders.boolQuery()
.should(QueryBuilders.scriptQuery(script))))
);
脚本查询并不理想,但如果需要检测空字符串的文档,则应设置null
而不是空字符串,在这种情况下,您将能够使用否定的{{1} } query:
exists