2017-10-11 118 views
0

我正在尋找一種方式來模糊匹配的字詞相等的地方。ElasticSearch - 模糊關鍵字匹配

即。如果我有一個字段值,就像這樣: -

foobar 
foobar number2 
barfoo 
barfoo number2 

,我和fooba搜索,我想只返回文檔foobar,而不是foobar number2

如果我number2搜索我想不回任何兩個number2值都有2個單詞。

我知道術語查詢不能模糊。這可能與任何查詢?

我使用elasticsearch 5.4

感謝

回答

0

與此2天的戰鬥後,我張貼後,這個問題的20分鐘的工作了。

您需要使用keyword標記生成器來創建現場自定義分析: -

"analyzer": { 
    "all_words_analyzer": { 
     "filter": [ 
      "lowercase" 
     ], 
     "type": "custom", 
     "tokenizer": "keyword" 
    } 
} 

然後設置在球場上: -

"term": { 
    "type": "text", 
    "analyzer": "all_words_analyzer" 
} 

現在正常的模糊匹配將作爲以上。

"query": { 
    "fuzzy": { 
     term": { 
      "value": "fooba" 
     } 
    } 
}