我有一個帶有 name 屬性的檔案的索引。我的目標檔案具有以下值:"name" : "Eiker Football Team Crows"。有不少名字中帶有“Eiker”的地方,因為它是一個地區。搜索Football Team會找到這個檔案,eik football team甚至會找到這個檔案eike(盡管它也會找到其他檔案)。真正奇怪的是,它沒有Eiker找到帶有單詞的檔案,但確實建議了一些帶有排列的檔案,例如Ekeror Eikeland。從字面上搜索正確拼寫和大小寫的完整名稱作為我正在尋找的檔案,沒有找到它。
這是我在 Kibana 開發人員中嘗試進行的搜索:
GET orgs/_search
{
"query": {
"match": {
"name": {
"query": "eiker",
"operator": "and",
"fuzziness": "auto",
"max_expansions": 5,
"prefix_length": 0
}
}
}
}
為什么我的 Elastic 搜索討厭r?
我嘗試了不同的擴展值或前綴值。或or代替and運算子。
uj5u.com熱心網友回復:
您的問題的簡單答案是您正在使用fuzziness,因此它也會進行模糊匹配。請檢查此檔案。
fuzziness 允許基于被查詢欄位的型別進行模糊匹配。
此外,Elasticsearch 默認只回傳前 10 個結果。如果您想獲得更多結果,請將size引數值設定為較大的數字。
更新:
根據您的評論,您正在使用autocomplete索引時間分析器和 autocomplete_search搜索時間分析器,這就是結果沒有出現的原因。使用在索引時用于name欄位的相同分析器嘗試以下查詢,它應該回傳結果。(請添加您有問題的索引映射和分析器設定,以便于回答問題)
POST sampleindex/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": {
"query": "Eiker",
"operator": "and",
"fuzziness": "auto",
"max_expansions": 5,
"prefix_length": 0,
"analyzer": "autocomplete"
}
}
}
]
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/444282.html
標籤:弹性搜索
