2012-03-02 86 views
1

我試圖讓同義詞正常工作,我要地圖地板更衣室到儲物櫃SOLR:建立索引時同義詞

目前正在尋找儲物櫃產生的結果分別爲搜索地板更衣室不會產生任何結果。 我有時間指數同義詞以下設置:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100" omitNorms="false"> 
    <analyzer type="index"> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizerFactory="KeywordTokenizerFactory"/> 
     <charFilter class="solr.HTMLStripCharFilterFactory"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" /> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
     <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
     <filter class="solr.RemoveDuplicatesTokenFilterFactory" /> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     </analyzer> 
...... 

而且我synonyms.txt看起來是這樣的:

floor locker=>storage locker 

我在做什麼錯?

+0

你的查詢是什麼樣的? – 2012-03-02 17:13:34

+0

q = {!dismax} floor locker – dorgan 2012-03-02 17:32:25

+0

恐怕我對Dismax查詢不夠了解,在這裏真正評論......但是,是否有可能沒有識別同義詞,因爲您沒有搜索一個確切的短語? – 2012-03-02 17:51:47

回答

1

您的分析鏈順序錯誤。你應該先放置char過濾器,然後放置標記器。同義詞過濾器可以在此之後立即生效。其餘的過濾器是按照正確的順序,或者至少是一個好的順序。