首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确配置Solr以删除字段中的重复术语

如何正确配置Solr以删除字段中的重复术语
EN

Stack Overflow用户
提问于 2016-05-20 11:15:47
回答 2查看 2.4K关注 0票数 2

我已经构建了一个基于mysql产品数据库的solr核心。核心工作很好,我可以搜索产品。我面临的问题是,当搜索词多次出现在描述中时,与只有一次搜索词的产品相比,该产品被认为更具有相关性。有没有办法告诉声纳不要考虑重复?

我读过关于UniqFieldsUpdateProcessorFactory的文章,但是还不能正确地配置它,所以我甚至不确定这是否是解决问题的正确方法。

我已经把这个添加到我的solrconfig.xml中了

代码语言:javascript
复制
<processor class="solr.UniqFieldsUpdateProcessorFactory">
  <str name="fieldRegex">.*_uniq</str>
</processor>

我也不知道如何验证这个配置是否实际工作,以及有什么影响(如果有的话)。

任何关于如何向前迈进的建议都会受到欢迎。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-23 01:27:54

这个问题是索引问题还是相关问题?因为通常情况下,如果某个术语在某个字段中发生了几次,那么该文档被认为比其他文档更相关。

如果您不想这样做,可以使用omitTermFreqAndPositions标志 enable重新定义字段,它不会存储或考虑在特定字段中看到术语的次数。

在此更改之后,您将需要重新索引所有内容。

票数 1
EN

Stack Overflow用户

发布于 2016-05-20 14:02:36

可以将solr.RemoveDuplicatesTokenFilterFactory筛选器添加到schema.xml的索引部分,以便在索引时删除重复项。在这个userwiki索尔维基中有使用的例子。这需要重新编制索引。

我在更新处理器链中使用solr.UniqFieldsUpdateProcessorFactory,以确保在原子更新期间不添加重复项。在文件上传时从未尝试过它的行为。原子更新在本链接中由Yonik解释。我使用它的方式如下:

代码语言:javascript
复制
<processor class="solr.UniqFieldsUpdateProcessorFactory">
  <str name="fieldRegex">[NAME OF MY FIELD IN SCHEMA.XML]</str>
</processor>

您可以使用重复记录的样本数据在本地设置上测试它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37345286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档