我想使用elasticSearch搜索術語(GoogleEarth或googleearch)。
現在,如果我試圖搜索「Google」查詢,沒有NGram或EdgeNGram,我無法獲得任何結果。
我不想使用nGram,因爲他們得到了很多結果。所以現在我只使用Bool Query + multimatchquery。在這種情況下,我無法通過部分詞彙獲得結果。 我希望我可以搜索'Google地球'或'Google'或'地球'來獲取GoogleEarth。我怎樣才能得到這個?
Elasticsearch搜索查詢選擇
現在我只是使用查詢'谷歌地球'來得到正確的結果。我想搜索條款,如果他們包括在內。
.setQuery(QueryBuilders.boolQuery().should(QueryBuilders.multiMatchQuery(query,
'title','name','tag')))
更新
我試圖基於精確匹配搜索字詞。如果我搜索「谷歌」,我想要'谷歌''googleearth'等。我知道如果我使用edgeNGram或nGram,我可能會得到較少的相關結果。所以如果可能的話,我不想使用nGram或edgeNGram。 你有什麼想法嗎?
的
camelcase tokenizer
部分謝謝您的答覆。我試圖根據完全匹配搜索條件。如果我搜索'谷歌',我可以'谷歌'谷歌'等'。我知道如果我使用edgeNGram,我可以得到這樣的結果。但我也應該得到較少的相關條款。你有什麼主意嗎? – Soo我不明白你的問題。我建議你更新你的問題,並提供許多確切的查詢例子和你期望匹配的源文本。還擴大你的意思是「不太相關的條款」。 – nickdos
我只是說我可能會得到很多nGram相關的結果。如果我查詢'谷歌',我可能會'googa','goooo'。 – Soo