我在ElasticSearch中有一个项目列表。用户输入查询,然后从弹性搜索中获取结果。现在,我在mongodb中存储了一些用户首选项,我希望根据这些用户首选项过滤弹性搜索的结果。
假设我从Elasticsearch获得了一个项目列表(item_ids)。
Mongo DB具有以下架构。
id, user_id, item_id
我之所以选择这种MongoDB模式,是因为用户可能有一个很大的项目列表(按百万个顺序),而他不想在结果中看到这些项目。
如何实现规模化?我需要更改架构吗?
答案 0 :(得分:1)
为此,您应该使用elasticsearch过滤,您可以在ES查询中包括过滤条件,这样可以减少返回结果的数量
请参阅filter and query context,并从同一正式文档中获得有关过滤器缓存的信息。
Elasticsearch将自动缓存常用的过滤器, 加快性能。