我使用SOLR與NGramTokenizerFactory一起幫助搜索與SOLR
NGramTokenizer配置了3
這是一個最小的字長字子創建搜索令牌短詞意味着我可以搜索例如「unb」然後匹配「unbelievable」這個詞。
但是,我有一個短的單詞,如「我」和「in」的問題。這些都沒有索引SOLR(我懷疑這是因爲NGramTokenizer),因此我無法搜索它們。
我不想將最小字長度減少到1或2,因爲這會創建一個巨大的搜索索引。但是我希望SOLR能夠包含長度已經低於這個最小值的整個單詞。
我該怎麼做?
/卡斯滕
感謝您的建議。我對兩個詞進行了分析:一個正常情況 - 「jeudan」和單字母詞「j」。這裏是結果http://pastie.org/1000520 正如你所看到的,它實際上是過濾出單字母單詞的NGramTokenizer--或者在這個EdgeNGramTokenizer中,但我已經用兩者進行了測試。 我可以嘗試你的建議,但我寧願讓Solr做所有的文本消息。我做了很多特定於字段的搜索,因此您的建議會導致需要重寫這些查詢以查看兩個文本字段而不是一個。可能但反直覺。 – 2010-06-11 09:05:53
考慮到在solr中有一個典型的聚合字段,在這個字段中進行查詢,然後是一系列具有不同類型和分析器的字段。 只需使用複製域標記將所有源域複製到目標。你不必改變你的查詢。 – 2010-06-11 09:41:08
那麼你的答案實際上解決了我面臨的這個問題和其他問題。我不知道分析工具。我最終通過分析器嘗試了其他一些過濾器和標記器,並最終在索引和查詢部分使用了PhoneticFilter。非常整潔 - 非常感謝! – 2010-06-14 04:26:17