WhitespaceTokenizerFactory和StandardTokenizerFactory之间的区别

tri*_*ons 10 solr tokenize

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

csu*_*nig 26

他们将分析的文本分成标记的方式不同.

StandardTokenizer这是否基于以下(从Lucene的javadoc中获取):

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

WhitespaceTokenizer做此基础上的空白字符:

WhitespaceTokenizer是一个在空白处划分文本的标记化器.相邻的非空白字符序列形成令牌.

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

  • **StandardTokenizer不会将电子邮件地址和互联网主机名识别为一个标记**:`@`是一组标记分割标点符号,以及连字符和"点/数字组合",因此电子邮件地址不会保留为单个令牌和输入如:`my-domain2.com`只是分为:`my`,`domain2`和`com`. (3认同)
  • 是的,他们应该这样做,以生产类似的代币.在极少数情况下,您需要在查询解析器中使用不同的标记生成器,而不是在索引时使用的标记生成器. (2认同)