我是Elasticsearch
的新手,我需要执行一个复杂的查询,但我需要一些帮助。
这是我的用例:
我想每天为每位用户推荐一个新的地方。 但是:
我的第一个猜测是有两种文件类型如下:
user_history
user_id
place_id
date
地方
place_id
opening_days
(地点开放的工作日数组)location
地方的地理位置给定位置为[lat, lon]
且标识为user_1
的用户,执行哪些搜索查询以检索按分数排序的X位置? (更好的分数靠近用户,而不是用户已经在最后10个位置)。
此查询似乎是基本的,但我无法弄清楚如何将user_history
和place
中的数据“混合”到我想要的place
。
但这不是全部!
使用此查询,如果我想为每个用户归属一个地方,我需要3个步骤:
user_history
这似乎非常耗时。是否可以使用较少的Elasticsearch
查询来简化它?
例如,有这样的事情:
或更好的事件:
我不知道是否可以创建复杂的查询。这就是为什么我需要你的帮助来告诉我它是否可能以及如何实现。