仅当令牌长于X个字符时才应用Solr过滤器

时间:2017-03-17 14:27:56

标签: solr

我是一名Solr begginer投入深渊:) 我正在处理自定义字段类型,其过滤器定义如下:

<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>

之后,定义了一个词干过滤器。

我只想在令牌长于X字符时才应用词干,这在Solr中是否可行?

我知道有一个<filter class="solr.LengthFilterFactory" min="2" max="7"/>可用,但它会切断不符合标准的词语,而不是让它们绕过词干。

关于如何解决它的任何想法? 在此先感谢:)

1 个答案:

答案 0 :(得分:1)

词根通常会忽略标记为关键字的字词。

因此,您希望在词干分析器之前向链中添加KeywordMarkerFilterFactory

要标记至少X个字符的单词,可以使用参数 pattern ,它接受Java正则表达式。所以,即使是基本的东西,如&#34; 。{13,} &#34; (匹配任何13个字符或更长的字符)应该有效。