在java rest client中调用elasticsearch中的数据,精准匹配的termQuery查不到数据,这个问题是java rest client客户端自带的bug,换用matchPhraseQuery直接替换即可。有点坑!
在elastic权威指南一书中是这样给出建议的:"匹配查询 match
是个 核心 查询。无论需要查询什么字段, match
查询都应该会是首选的查询方式。它是一个高级 全文查询 ,这表示它既能处理全文字段,又能处理精确字段。"这就意味着match查询是高级查询,底层使用了term查询。
结论:相关度查询使用match,精确字段查询使用matchPhrase即可。