Solr 同义词中的“Is-a”关系

问题描述

我有两个文本:

文本-1

我们新的 Android 智能手机

文本-2

我们的新 iPhone 智能手机

我想告诉 Solr,“android”“智能手机”。

预期结果:

如果用户搜索“Android”,则只能找到第一个文本。

如果用户搜索“智能手机”,则应找到这两个文本。

如果我使用“相等同义词”(SolrSynonymParser)(在编制索引期间),那么在两个文本中,术语“智能手机”将扩展为“智能手机、Android、iPhone”。

解决方法

除了MatsLindh的注释,要添加一个单向同义词,如:"android=>android,smartphone",你还应该考虑只在索引时添加同义词过滤器,而不是在索引和查询时都添加

>

例如:

<analyzer type="index"> 
   ...
   <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt"/>
   ... 
</analyzer>

这样,“android”和“smartphone”都会被索引到任何出现的“android”