【发布时间】:2016-10-07 21:35:03
【问题描述】:
如果我理解正确,SynonymFilterFactory 不会以任何方式阻止同义词。因此,如果他们想要良好的回忆而不考虑复数/时态,就必须非常详尽地在其同义词文件中使用复数和时态。
我看到SynonymFilterFactory 有一个可选参数,它可以接受分析器。
analyzer:(可选;默认值:WhitespaceTokenizerFactory)解析同义词文件时使用的分析器类的名称。如果指定了analyzer,则可能不指定tokenizerFactory,反之亦然。
我怀疑像这样嵌套所需的分析器是否有效:
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" >
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
</filter>
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
我怀疑编译扩展分析器 .jar 并将其放在 SOLR 的 lib 文件夹中可能是执行此操作的唯一方法。有没有办法在配置中定义一个命名分析器,或者另一种方法来实现这个目标?
【问题讨论】:
标签: solr lucene synonym stemming