在java rest client中調用elasticsearch中的數據,精准匹配的termQuery查不到數據,這個問題是java rest client客戶端自帶的bug,換用matchPhraseQuery直接替換即可。有點坑!
在elastic權威指南一書中是這樣給出建議的:"匹配查詢 match
是個 核心 查詢。無論需要查詢什么字段, match
查詢都應該會是首選的查詢方式。它是一個高級 全文查詢 ,這表示它既能處理全文字段,又能處理精確字段。"這就意味着match查詢是高級查詢,底層使用了term查詢。
結論:相關度查詢使用match,精確字段查詢使用matchPhrase即可。