【问题标题】:Difference between WhitespaceTokenizerFactory and StandardTokenizerFactoryWhitespaceTokenizerFactory 和 StandardTokenizerFactory 的区别
【发布时间】:2012-06-26 08:03:15
【问题描述】:

我是 Solr 的新手。通过阅读 Solr 的 wiki,我不明白 WhitespaceTokenizerFactory 和 StandardTokenizerFactory 之间的区别。它们的真正区别是什么?

【问题讨论】:

    标签: solr tokenize


    【解决方案1】:

    它们的不同之处在于将分析的文本拆分为标记的方式。

    StandardTokenizer 基于以下内容(取自 lucene javadoc)来执行此操作:

    • 在标点符号处拆分单词,删除标点符号。 但是,后面没有空格的点被视为部分 的一个令牌。
    • 在连字符处拆分单词,除非其中有数字 令牌,在这种情况下,整个令牌被解释为一个产品 编号且不拆分。
    • 识别电子邮件地址和互联网 主机名作为一个令牌。

    WhitespaceTokenizer 会根据空白字符执行此操作:

    WhitespaceTokenizer 是一种在空白处分割文本的分词器。相邻的非空白字符序列形成标记。

    您应该选择最适合您的应用程序的分词器。在任何情况下,您都必须使用相同的分析器/标记器进行索引和搜索!

    【讨论】:

    • 感谢 csupnig!当您说“使用相同的分析器/标记器”进行索引和搜索时,您的意思是分析器需要与正在使用的标记器的类型相匹配,对吗?
    • 是的,他们应该这样做以产生相似的令牌。只有在极少数情况下,您希望查询解析器中的分词器与索引时使用的分词器不同。
    • StandardTokenizer 不将电子邮件地址和 Internet 主机名识别为一个标记@ 是一组分割标记的标点符号,以及连字符和“点/数字”组合”,因此电子邮件地址不会保留为单个令牌,并且像:my-domain2.com 这样的输入只是拆分为:mydomain2com
    • 以下几点代表 StandardTokenizer 是错误的: 1) 在连字符处拆分单词,除非令牌中有数字,在这种情况下,整个令牌被解释为产品编号并且不被拆分。 2) 将电子邮件地址和 Internet 主机名识别为一个标记。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 2011-10-20
    • 2020-01-23
    • 1970-01-01
    • 2014-10-09
    • 2010-12-21
    • 2011-05-11
    相关资源
    最近更新 更多