我想一起索引一些带有特殊字符的单词。
例如,给定m&m
,我想将它作为一个整体进行索引,而不是将其分隔为m
and m
(通常&
会被视为分隔符)。
有没有办法通过使用标准标记器/过滤器来实现这一点,还是我必须自己写一个?
我想一起索引一些带有特殊字符的单词。
例如,给定m&m
,我想将它作为一个整体进行索引,而不是将其分隔为m
and m
(通常&
会被视为分隔符)。
有没有办法通过使用标准标记器/过滤器来实现这一点,还是我必须自己写一个?
基本上文本字段类型在索引之前过滤掉特殊字符。并且您可以使用字符串类型,但不建议对其进行搜索。您可以使用WordDelimiterFilterFactory的类型选项, 您可以将这些特殊字符转换为字母
% => 百分比 & => 和
标准标记器工厂以特殊字符分割/标记给定文本。要使用特殊字符进行索引,您可以编写自己的自定义标记器,也可以执行以下操作:
{" ",";"}
.使用带有上述字符列表的PatternTokenizer ,而不是 StandardTokenizer。您的配置将如下所示:
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern=" |;" />
</analyzer>
你可以使用 WhiteSpaceTokenizerFactory。
http://docs.lucidworks.com/display/solr/Tokenizers#Tokenizers-WhiteSpaceTokenizer
它只会对空格进行标记。例如,
"m&m" 将被视为单个标记,因此它会像这样被索引