如何从Elastic Search查询中排除大量ID

发布于 2021-02-01 11:57:31

我正在开发类似于Tinder的应用程序。在ElasticSearch中,我收集了大约50万用户及其位置。每当用户打开应用程序以搜索附近的用户时,我都会对该集合运行Elastic
Search查询。查询是相当复杂的,它不仅考虑位置,而且考虑用户的活跃程度或他拥有多少张照片。

我所苦恼的是如何从查询中排除当前用户已经刷过的那些用户。一种简单的实现方式可能是将嵌套的用户ID数组作为索引中每个用户文档的一部分进行维护,并基于此进行排除。但是,由于每个用户都会做成千上万次滑动,因此阵列可能会变得非常大,因此它不是可扩展的解决方案。

有没有一种方法可以根据其ID从elasticsearch查询中排除大量实体,而这又不会损害性能?

关注者
0
被浏览
133
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    使用条款查询的查找功能:条款查找机制

    当需要指定包含大量术语的术语过滤器时,从索引中的文档中获取这些术语值将是有益的。一个具体的例子是过滤您的关注者发布的推文。术语过滤器中指定的用户ID数量可能很多。在这种情况下,使用术语过滤器的术语查找机制是有意义的。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看