gpt4 book ai didi

elasticsearch - Club-Mate在Elasticsearch中不适合Club-Mate

转载 作者:行者123 更新时间:2023-12-03 01:09:19 24 4
gpt4 key购买 nike

这是我的堆栈:

  • Rails 3.2.6
  • MongoID〜> 2.5
  • 轮胎0.4.2
  • ElasticSearch服务器

  • 我有两千种产品想在 flex 搜索中建立索引。这是我的映射:
    mapping do
    indexes :name, analyzer: 'snowball', boost: 100
    indexes :description, analyzer: 'snowball'
    end

    不幸的是,搜索结果令人难以置信。通过搜索“club-mate”,第一个结果是“club-mate-c”。第二个结果是“俱乐部伴侣”。为什么“俱乐部伴侣”最不适合“俱乐部伴侣”。
    搜索结果按_score排序。没有其他的。

    我感谢任何形式的反馈。
    我确信这只是一个配置问题。

    最佳答案

    您几乎没有提供有关正在索引的数据,数据的统一程度或查询方式的信息。

    一个可能的问题是,术语clubmate在数据集中不是很常见,并且在各个分片上分布不均。

    默认情况下,频率频率是由每个分片单独考虑的,因此,如果在一个分片上具有clubmate 3次,而在另一个分片上具有clubmatec一次,则第二个分片可能会将clubmate视为比第一个碎片更相关。

    通常,对于大量数据,术语频率甚至会消失,因此这不再是问题。但是,只有少量数据,您会看到类似的问题。

    解决方案:

  • 使用单个碎片而不是默认的碎片(如果您总是要有少量数据,那么这是更好的选择)而不是默认碎片5
  • 索引更多数据
  • 在您的搜索参数中添加search_type=dfs_query_then_fetch,它将在运行查询
  • 之前检查所有分片上的词频

    注意: search_type默认为 query_then_fetch而不是 dfs_query_then_fetch,因为通常情况下,您将有足够的数据来确保平均词频,并且效果更好。

    您可以将 explain=1添加到搜索参数中,以查看每个文档的得分是如何计算的,这应该可以更清楚地说明问题。

    关于elasticsearch - Club-Mate在Elasticsearch中不适合Club-Mate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516872/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com