我已经构建了一个基于mysql产品数据库的solr核心。核心工作很好,我可以搜索产品。我面临的问题是,当搜索词多次出现在描述中时,与只有一次搜索词的产品相比,该产品被认为更具有相关性。有没有办法告诉声纳不要考虑重复?
我读过关于UniqFieldsUpdateProcessorFactory的文章,但是还不能正确地配置它,所以我甚至不确定这是否是解决问题的正确方法。
我已经把这个添加到我的solrconfig.xml中了
<processor class="solr.UniqFieldsUpdateProcessorFactory">
<str name="fieldRegex">.*_uniq</str>
</processor>我也不知道如何验证这个配置是否实际工作,以及有什么影响(如果有的话)。
任何关于如何向前迈进的建议都会受到欢迎。
发布于 2016-05-23 01:27:54
这个问题是索引问题还是相关问题?因为通常情况下,如果某个术语在某个字段中发生了几次,那么该文档被认为比其他文档更相关。
如果您不想这样做,可以使用omitTermFreqAndPositions标志 enable重新定义字段,它不会存储或考虑在特定字段中看到术语的次数。
在此更改之后,您将需要重新索引所有内容。
发布于 2016-05-20 14:02:36
可以将solr.RemoveDuplicatesTokenFilterFactory筛选器添加到schema.xml的索引部分,以便在索引时删除重复项。在这个userwiki和索尔维基中有使用的例子。这需要重新编制索引。
我在更新处理器链中使用solr.UniqFieldsUpdateProcessorFactory,以确保在原子更新期间不添加重复项。在文件上传时从未尝试过它的行为。原子更新在本链接中由Yonik解释。我使用它的方式如下:
<processor class="solr.UniqFieldsUpdateProcessorFactory">
<str name="fieldRegex">[NAME OF MY FIELD IN SCHEMA.XML]</str>
</processor>您可以使用重复记录的样本数据在本地设置上测试它。
https://stackoverflow.com/questions/37345286
复制相似问题