2015-08-28 131 views
3

的elasticsearch documentation狀態:Elasticsearch短語建議

在實踐中,這種建議者將能夠做出更好的決定哪些令牌挑基於聯合occurence和頻率。

我有我的索引文件具有與內容Bella Tank一個場。

要測試語建議者,我發送以下查詢:

curl -XPOST 'localhost:9200/my_index/_search?pretty' -d '{ 
    "suggest" : { 
    "text" : "Bell Tank", 
    "suggestion": { 
     "phrase": { 
     "field": "name", 
     "size": 3 
     } 
    } 
    } 
}' 

而且3點建議,我收到如下:

"suggest" : { 
    "suggestion" : [ { 
    "text" : "Bell Tank", 
    "offset" : 0, 
    "length" : 9, 
    "options" : [ { 
     "text" : "ball tank", 
     "score" : 0.03721739 
    }, { 
     "text" : "bella tank", 
     "score" : 0.03721739 
    }, { 
     "text" : "bess tank", 
     "score" : 0.034840018 
    } ] 
    } ] 
} 

正如你所看到的,ball tankbella tank建議具有相同分數,儘管我的索引中只存在bella tank。它似乎並不關心共生符號。

是我在這裏唯一選擇使用multifields創建name的非分析版本,還是我這樣做是錯誤的?

回答

1

你需要對你的建議對現場使用的shingle filter。多場是偉大的,因爲你可能不想搜索與帶狀皰疹。 max_shingle_size最多可以使用3個。

它肯定bug該文檔不提到這一點非常突出。

看看wikipedia如何設置其建議分析儀。它不完美,但它是一個好開始。