2012-02-24 65 views
2

使用Solr 3.5.0的Im和Schema我已經在所有必需的字段中啓用了LowerCaseFilterFactory,但是當我搜索例如「襯衫」時我能夠得到結果,當我搜索「SHIRTS」我能夠獲得預期的結果,但是當我嘗試用「shiRTs」進行搜索時,它沒有給出結果。我知道我在Schema中缺少一些東西。Solr中的小寫和大寫關鍵字

請幫我解決這個問題。

謝謝

Jeyaprakash。

+1

您應該在索引和查詢的同時添加LowerCaseFilterFactory。也許您錯過了一個。如果您共享您的fieldType,將會提供合適的答案。 – 2012-02-24 07:28:44

回答

4

在索引和查詢時間應用相同的分析器和過濾器,因此您搜索的查詢與令牌索引匹配。

至於你的情況 - 如果你申請的小寫過濾器在索引時間,但不會在查詢時間: -
指數令牌將shirts,但是作爲搜索查詢不分析SHIRTS甚至Shirts將不匹配索引shirts令牌。

如果您使用詞幹分析器,停用詞或其他過濾器,則同樣適用。

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Analyzers

分析儀是組件前處理輸入文本在索引時間 和/或在搜索時間。使用相同或相似的 分析儀很重要,該分析儀在索引和查詢 時間以兼容的方式處理文本。例如,如果索引分析器將詞彙降低,則查詢分析器應該執行相同的操作來啓用索引詞語的查找。

+0

非常感謝Jayendra。 :) – jeyaprakash 2012-02-24 10:19:35

+0

有人可以告訴我如何做到這一點? 例如:過濾器'solr.LowerCaseFilterFactory'應用於text_en_splitting的模式。如何將此應用於查詢? – 2013-05-29 09:55:44

+0

您的意思是架構中的「<分析器類型=」索引「>」和「<分析器類型=」查詢「>」?我有這個但仍然沒有效果...查詢仍然沒有按照問題中提到的那樣做 – 2013-05-29 10:02:26