2013-03-08 107 views
1

我想索引一些包含特殊字符的單詞。例如,給定'm & m',我想暫時將其編入索引,而不是將其作爲m和m(通常&將被視爲分隔符)進行定界。有沒有辦法通過使用標準的標記器/過濾器來實現這一點,還是我必須自己寫一個?如何索引Solr中包含特殊字符的單詞

回答

3

基本上文本字段類型在索引之前過濾出特殊字符。您可以使用字符串類型,但不建議在其上進行搜索。您可以使用WordDelimiterFilterFactory類型選項,你可以將這些特殊字符,英文字母

%=>%的 & =>和

+0

'%=> percent'是一個無效的規則。這裏的例子是正確的:https://issues.apache.org/jira/browse/SOLR-2059 – zengr 2013-08-27 22:20:36

2

A標準分詞器工廠拆分/標記化的特殊字符給定的文本。要使用特殊字符的索引,你既可以編寫自己的定製標記生成器,或者你可以做到以下幾點:

  • 以字符,在您要來標記的列表/分割 文本。例如,我的清單是{" ",";"}
  • 使用​​與 上面的字符列表,而不是StandardTokenizer。你 配置將是這樣的:

    <analyzer> 
        <tokenizer class="solr.PatternTokenizerFactory" pattern=" |;" /> 
        </analyzer> 
    
+0

嗨@Mavellin,我們有相同的要求,並應用'Solr.PatternTokinerFactory'作爲解決方案,但它會導致一些奇怪的問題。請看一看。 http://stackoverflow.com/questions/16105450/solr-fuzzy-search-issue-with-patterntokenizer-factory – meghana 2013-04-22 10:14:23