2014-11-06 30 views
1

我的索引中有很多糟糕的詞語,只是使用我的數據和隨附的示例。這使得拼寫建議非常糟糕。Solr和拼寫排除結果中的短語

例如,它建議大量隨機1-3個字符長的單詞。例如:

查詢carr:ca ar c rr car rr carrot。

我想拼寫查詢忽略所有這些無用的單詞。他們不是真正的停止詞,而是隨機的縮寫詞。我還沒有想出如何在索引期間跳過一個字母詞...

此外,如果你搜索arrot,你永遠找不到胡蘿蔔。這怎麼能實現?

回答

0

在用於建議的字段的字段類型定義中,可以使用LengthFilterFactory - 將min設置爲3,並且根本不會看到編入索引的簡短單詞。

參見:https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.LengthFilterFactory

對於問題的第二部分,你可以在你的領域定義

<filter class="EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="back" /> 

使用將從字的末尾產生的n-gram(OT,腐爛,rrot, arrot)。這取決於你如何生成和處理你的查詢的具體細節。

+0

謝謝!我會嘗試。 – 2014-11-06 10:08:07

+0

將文檔ID 1寫入索引的異常;可能的分析錯誤。對於EdgeNGram,任何線索爲什麼? – 2014-11-06 12:44:17

+0

粘貼異常?你有沒有嘗試從一個空索引,只是爲了確保? – Yann 2014-11-06 13:05:59