4

我们有一个数字除以破折号的故障单格式,即 n-nnnnnnn

链接 http://lucidworks.lucidimagination.com/display/solr/Tokenizers(在 Standard Tokenizer 和 Classic Tokenizer 的部分中)暗示在支持 Unicode 标准附件 UAX#29 之前和之后:

单词在连字符处拆分,除非单词中有数字,在这种情况下,不拆分标记并且保留数字和连字符。

我们的 Solr 安装仅使用 StandardTokenizerFactory,但这种故障单格式正在破折号处的查询中拆分。我是 solr/lucene 的新手。我已经下载了 3.6.1 的代码,而评论暗示相反(除非虚线数字仍被视为数字)。我无法遵循 Lex 处理:

  • 生成的令牌有以下类型:
    • <ALPHANUM>:字母和数字字符序列
    • <NUM>:一个数字
    • <SOUTHEAST_ASIAN>:来自南部和东南部的字符序列
    • 亚洲语言,包括泰语、老挝语、缅甸语和高棉语
    • <IDEOGRAPHIC>:单个 CJKV 表意字符
    • <平假名>:一个平假名字符

谁能澄清一下谢谢。

4

1 回答 1

1

您需要正则表达式模式标记器。此标记器使用 Java 正则表达式将输入文本流分解为标记。模式参数提供的表达式可以解释为分隔标记的分隔符,也可以解释为匹配应从文本中提取为标记的模式。

有关Java 正则表达式语法的更多信息,请参阅java.util.regex.Pattern 的 Javadocs 。

于 2014-07-18T09:39:17.987 回答