gpt4 book ai didi

mongodb - 基于mongodb的 Elasticsearch 过滤数据

转载 作者:行者123 更新时间:2023-12-02 22:26:55 25 4
gpt4 key购买 nike

我在ElasticSearch中有一个项目列表。用户输入查询,然后从 flex 搜索中获取结果。现在,我在mongodb中存储了一些用户首选项,我希望根据这些用户首选项过滤 flex 搜索的结果。

  • 假设,我从Elasticsearch获得了一个项目列表(item_ids)。
  • Mongo DB具有以下架构。id, user_id, item_id
  • 我选择此MongoDB模式是因为用户可能有一个很大的项目列表(按百万个顺序),他不想在结果中看到这些项目。

  • 如何实现规模化?我需要更改架构吗?

    最佳答案

    您应该为此使用elasticsearch过滤,您可以在ES查询中包括过滤条件,这样可以减少要返回的结果数量

  • 您必须从ES返回巨大的数据集,然后在MongoDB中进行过滤,这是两步过程,在ES和mongo方面都非常昂贵。
  • 在ES上使用过滤器时,它将返回较少的数据,这将避免在mongoDB上进行额外的后处理,并且首先执行过滤器,并且默认情况下将其缓存在elasticsearch端,因此您不需要诸如redis等其他缓存解决方案。

  • 请参阅 filter and query context并从同一官方文档中获取有关过滤器缓存的信息。

    Frequently used filters will be cached automatically by Elasticsearch,to speed up performance.

    关于mongodb - 基于mongodb的 Elasticsearch 过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62888443/

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