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

标签 solr duplicates

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

我已经阅读过有关 UniqFieldsUpdateProcessorFactory 的内容,但无法正确配置它,所以我什至不确定这是否是解决我的问题的正确方法。

我已将其添加到我的 solrconfig.xml

<processor class="solr.UniqFieldsUpdateProcessorFactory">
  <str name="fieldRegex">.*_uniq</str>
</processor>

我也不确定如何验证此配置是否确实有效以及有何影响(如果有的话)。

任何有关如何前进的指示将不胜感激。

最佳答案

您可以添加solr.RemoveDuplicatesTokenFilterFactory在 schema.xml 的索引部分中进行过滤,以在索引时删除重复项。使用示例在此 userwikisolrwiki 。这将需要重新索引。

我使用solr.UniqFieldsUpdateProcessorFactory在我的更新处理器链中,以确保我在原子更新期间不会添加重复项。从未在文档上传时尝试过它的行为。原子更新在此 link 中进行了解释。由约尼克.我按以下方式使用它:

<processor class="solr.UniqFieldsUpdateProcessorFactory">
  <str name="fieldRegex">[NAME OF MY FIELD IN SCHEMA.XML]</str>
</processor>

您可以使用重复记录的示例数据在本地设置上对其进行测试。

关于solr - 如何正确配置 Solr 以删除字段中的重复术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37345286/

相关文章:

solr - 在 Lucene/Solr 中按最近访问排序

data-structures - Lucene (Solr/ElasticSearch) 是如何快速进行过滤词条计数的?

java - 如何使用另一个类中的方法从一个 java 类中的 MD 数组中删除重复项

mysql - 我如何在 mysql 中插入多个值并避免重复

Solr 多值字段中值的顺序

solr - 现有 SOLR 集合未获取 Zookeeper 架构更改

java - 如何获取搜索结果中出现的术语集?

Windows批处理文件在硬盘中查找重复大小的文件(无论名称和扩展名)

sql-server - 如何使用 SSIS 从平面文件中删除重复行?

linux - 根据列查找重复行并使用 awk 打印两行及其编号