我已經索引的文檔,每一個領域:「代號爲」具有類似的值如下:如何在elasticsearch中匹配「prefix」而不是整個字符串?
document 1 has CodeName: "AAA01"
document 2 has CodeName: "AAA02"
document 3 has CodeName: "AAA03"
document 4 has CodeName: "BBB02"
當我嘗試在野外使用匹配查詢:
query: {
"match": {
"CodeName": "AAA"
}
}
我期待得到「AAA01」和「AAA02」的結果,但相反,我得到一個空數組。當我通過「AAA01」(我輸入了全部內容)時,我得到了一個結果。我如何使它更一般地匹配?我嘗試使用「前綴」而不是「匹配」,並得到同樣的問題。
「CodeName」的映射是「type」:「string」。
謝謝!你想什麼時候使用nGram? – Rolando
nGram在創建索引時需要更多時間,並且需要更多的存儲空間,但同時提供更快的搜索,因爲所有的標記都是預先計算好的。如果數據集很大,並且需要多個標記組合,如「AA」,「AAA」,「AAA0」,「AAA01」,則使用nGram更有意義。對於像您這樣簡單的需求和有限的數據集,phrase_prefix通常足夠簡單。 – Ibrahim