2013-02-22 133 views
0

我正在使用SOLR在magento中搜索並嘗試使用SOLR模糊搜索的功能。但到目前爲止,似乎沒有運氣。Magento SOLR模糊搜索

我已經嘗試在搜索查詢的末尾使用tilda(〜),並試圖使用「PorterStemFilterFactory」,這是迄今爲止我知道的最佳幹線工廠。但它沒有給我任何結果。例如;我有名爲「Shiraz」的產品。因此,如果使用「shirag」或「shrag」進行搜索,模糊搜索將返回相同的結果。

這是我的架構部分(我只給英文部分,因爲這是我使用的唯一部分)

<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
      <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
      <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/> 
      <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="10" /> 
      <!-- 
       In this example, we will only use synonyms at query time. 
       <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" 
        expand="false"/> 
      --> 
      <!-- 
       Case insensitive stop word removal. Add enablePositionIncrements=true in both the index and query 
       analyzers to leave a 'gap' for more accurate phrase queries. 
      --> 
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" 
        enablePositionIncrements="true"/> 
      <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" 
        catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords_en.txt"/> 
     </analyzer> 
     <analyzer type="query"> 
      <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
      <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/> 
      <filter class="solr.SynonymFilterFactory" synonyms="synonyms_en.txt" ignoreCase="true" expand="true"/> 
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" 
        enablePositionIncrements="true"/> 
      <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" 
        catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords_en.txt"/> 
      <filter class="solr.PorterStemFilterFactory" /> 
     </analyzer> 
    </fieldType> 

而且這些都是我試圖鏈接:

http://johntwang.com/blog/2011/09/05/Fuzzy-and-Document-Searching-with-WebSolr-and-Heroku/ http://docs.lucidworks.com/display/solr/The+Standard+Query+Parser http://www.rqna.net/qna/mnuhwh-solr-fuzzy-search-for-similar-words.html

回答