我尝试将LetterTokenizerFactory
与WhitespaceTokenizerFactory
结合使用,但如果不使用copyField
复制内容,则无法找到该怎么做。
让我描述一下我的想法:
h&m
- 我为此目的使用WhitespaceTokenizerFactory
,无需在特殊字符上拆分令牌LetterTokenizerFactory
服务于此案例,令牌分为特殊字符如果不使用不同的tokenizer工厂声明2种不同类型,然后将值复制到第二种类型的字段,我该如何实现呢?
答案 0 :(得分:1)
您可以使用WhitespaceTokenizerFactory作为主标记器,然后添加WordDelimiterGraphFilter以将您的标记进一步拆分为较小的标记。
从WordDelimiterGraphFilter的示例(以前名为WordDelimiterFilter,但现在已弃用 - 所以名称将取决于您使用的Solr版本):
非字母数字字符(丢弃):“热点” - > “热”,“现场”
这将允许帕卡德与hewlett相匹配。请注意,这也将允许'm'匹配h&m
,因为您要拆分非字母数字字符。您可以使用过滤器的protected
设置指定不应触及的单词列表,如果您希望&
的所有内容保持不变,则可以更好地使用{{1} }参数重新定义应将types
视为哪种类型。