2016-02-05 38 views
2

我試圖爲查詢條件實現一個簡單的自動完成。 有許多不同的方法,但他們大多數確實會返回文檔而不是條款 - 或者作者僅僅停止從那一點解釋,我無法適應。Elasticsearch - 自動完成返回單詞/術語/令牌建議,而不是整個文檔

用戶正在輸入查詢 - 例如, 菲爾 我要的是提供的期限完成建議列表像菲利普,philius,費城,...

我能夠獲得通過的文件(邊緣)的n-gram,phrase_prefix等相匹配但我被困在檢索匹配條件(完成建議)。

有人可以給我一個提示嗎?

我有這樣的文檔{「title」:「...」,「description」:「...」,「content」:「...」} 所有字段都有較大的字符串值,字段內容包含全文內容。

我不想建議包含例如文檔的整個標題。費城。只是「費城」一詞。

+0

嗨,只是爲了確定;你有沒有試過https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html? – aclokay

+0

我曾嘗試完成建議。但它只返回預定義的輸出(或使用輸入作爲輸出)。但是,由於我正在處理全文文件,所以建議時間太長。 ...或者我錯過了什麼?我只需要獲取術語建議。 – Philipp

回答

0

尋找那樣的東西,我自己。

在SOLR中,使用solr.SpellCheckComponent進行配置相對比較簡單(儘管構建並保持最新狀態很痛苦)。不知何故,在SOLR和ElasticSearch之間使用相同的底層Lucene功能,並且在ElasticSearch中,它適合尋找整個文檔(或者整個字段值,如果您願意的話)或者它似乎...

儘管「 elasticsearch自動完成「的文章,似乎沒有處理這個特定的問題。就像它不存在一樣。也許他們的用例是不同的,ElasticSearch適用於他們就好了,誰知道呢?

在這一點上我認爲準備的確切字段值與ElasticSearch自動完成使用(是的,這就是輸入字段值,不分析令牌)可能解決問題的唯一途徑。這很糟糕,因爲表現會很低。

+0

由於你的回答並沒有真正回答這個問題,所以最好作爲對帖子的評論而不是回答。只是爲了您的意見/答案向前思考。 –

+0

我的代表低於允許發表評論的閾值。 – bitterman0

+0

對於我準備確切的自動完成值(輸出值)不是一個選項,因爲我正在處理每個單詞可能成爲自動填充建議的巨大文檔正文。將自動填充字段Token化似乎不起作用:-( – Philipp

相關問題