solr:SimplePatternSplitTokenizer 拆分文字 't'、'r'、'n' 字符

solr: SimplePatternSplitTokenizer splitting on literal 't', 'r', 'n' characters

我的架构中有:

<analyzer type="index">
  <tokenizer class="solr.SimplePatternSplitTokenizerFactory" pattern="[ \t\r\n]+"/>
</analyzer>

这是从 solr 文档中逐字复制和粘贴的。现在,拆分 space 字符有效。但是,它不是在制表符、return 回车符和换行符上拆分,而是在字符 't'、'r' 和 'n' 上拆分。怎么回事??

下面一个适合你。

<fieldType name="patternSplit" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.SimplePatternSplitTokenizerFactory" pattern="[&#x9;&#xA;&#xD;]+"/>
    </analyzer>
</fieldType>

Lucene 的 RegExp 构造函数使用原始 unicode 字符而不是 \t\r\n形式,所以正确的配置是

<tokenizer class="solr.SimplePatternSplitTokenizerFactory" pattern="[ &#x9;&#xA;&#xD;]+"/>

请从分析页面中找到截图。