2013-03-08 84 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