solr.SimplePatternSplitTokenizerFactory 产生意外结果。使用的模式实际上来自SOLR文档中的示例,我不知道我在哪里犯了错误或为什么它不能按预期工作。
如果以示例输入“ operating”为例,分析器将显示在索引编制过程中,输入将分为令牌“ ope”,“ a”和“ ive”,这是令牌化程序在字符处拆分的结果。 “ r” 和“ t” ,而不是预期的空白字符( CR , TAB )。只是为了确保我也尝试在模式中使用多个退格键(例如 \ t 和 \\ t ),但这并没有改变输入的标记方式在建立索引期间。
我想念什么?
使用的SOLR版本为7.5.0。
模式中字段类型的定义如下:
<fieldType name="text_custom" class="solr.TextField" positionIncrementGap="100" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.SimplePatternSplitTokenizerFactory" pattern="[ \t\r\n]+"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.SimplePatternSplitTokenizerFactory" pattern="[ \t\r\n]+"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
更新在“ Solr-用户”邮件列表档案中找到了该帖子: http://lucene.472066.n3.nabble.com/Solr-Reference-Guide-issue-for-simplified-tokenizers-td4385540.html
似乎文档(或示例)不正确/有效。标记程序的以下用法按预期工作:
<tokenizer class="solr.SimplePatternSplitTokenizerFactory" pattern="[ 	

]+"/>
答案 0 :(得分:0)
在“ Solr-用户”邮件列表档案中找到了该帖子:http://lucene.472066.n3.nabble.com/Solr-Reference-Guide-issue-for-simplified-tokenizers-td4385540.html
似乎文档(或示例)不正确/有效。标记程序的以下用法按预期工作:
<tokenizer class="solr.SimplePatternSplitTokenizerFactory" pattern="[ 	

]+"/>