0

我正在将 Solr 与 Solarium 一起使用,并且我正在尝试搜索具有相同含义的不同单词。例如,如果用户搜索照片,它也会返回照片和照片的结果。

我曾尝试实施 Hunspell 和雪球过滤器工厂。两者似乎都处理单词的复数实例。

这是我的架构中的条目:

<fieldType name="text_general" class="solr.TextField" multiValued="true" positionIncrementGap="100">
<analyzer type="index">
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
  <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
  <filter class="solr.SynonymFilterFactory" expand="true" synonyms="synonyms.txt" ignoreCase="true"/>
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.HunspellStemFilterFactory" dictionary="en_US.dic" affix="en_US.aff" ignoreCase="true" />
</analyzer>

谢谢!

4

1 回答 1

0

在词干提取中,单词被简化为词干或词根形式。您已经使用过 SnowballPorterFilterFactory 和 HunspellStemFilterFactory 并且可以在 solr中尝试PorterStemFilterFactoryKStemFilterFactoryEnglishMinimalStemFilter 。词干过滤器无法处理同义词。如果要搜索具有相同含义的不同单词,则必须在 solr 中使用 stopfilterfactory 并将可能的同义词添加到 sysnoyms.txt 中。可以在那里定义替换同义词、单向扩展同义词和多向扩展同义词。

于 2019-06-27T18:21:37.600 回答