我已经基于 mysql 产品数据库构建了一个 solr 核心。核心工作正常,我可以搜索产品。我面临的问题是,当描述中多次存在搜索词时,与仅包含该词一次的产品相比,该产品被认为更相关。有没有办法告诉声纳不考虑重复项?
我已经阅读过有关 UniqFieldsUpdateProcessorFactory 的内容,但无法正确配置它,所以我什至不确定这是否是解决我的问题的正确方法。
我已将其添加到我的 solrconfig.xml
<processor class="solr.UniqFieldsUpdateProcessorFactory">
<str name="fieldRegex">.*_uniq</str>
</processor>
我也不确定如何验证此配置是否确实有效以及有何影响(如果有的话)。
任何有关如何前进的指示将不胜感激。
最佳答案
您可以添加solr.RemoveDuplicatesTokenFilterFactory
在 schema.xml 的索引部分中进行过滤,以在索引时删除重复项。使用示例在此 userwiki和 solrwiki 。这将需要重新索引。
我使用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/