SOLR-停用词或样式替换,破坏词组强度

时间:2019-07-09 17:44:06

标签: solr

在查询侧使用停止词或用空字符串替换单词,将搜索词视为单个单词而不是短语,从而降低了我的短语字段的作用力

如果有人搜索“儿童书”(不带引号),而我们在solr中有一个文档,其类别字段为“儿童书”,那么它将匹配。

因此,如果我们将pf2短语字段中的category字段具有甚至更强的提升,则提升将应用于此搜索。

但是,当我搜索“儿童图书”时,“ for”一词会被正确删除,因为它是一个停用词,但剩下两个词;现在,“书”和“子”分别得到处理,而我的类别短语字段的功能也消失了。

在分析中,我们可以看到停用词过滤器将“ for”替换为一个空格,并且该空格停留在那里,将剩下的两个单词相除。所以我想,如果我在映射FoldToASCII.txt文件中添加“ for”一词并用空字符串替换,那么“ for”将被完全忽略。进行此更改之后,分析工具确实没有显示出“ for”一词的踪影,但在搜索时问题仍然存在(提升幅度稍高,但无明显意义)。这是字段类型:

    <fieldType name="some_type" class="solr.TextField" positionIncrementGap="100" multiValued="true" omitNorms="true">
<analyzer type="index">
  <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<analyzer type="query">
  <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
</analyzer>

0 个答案:

没有答案