让我们想象一下,我们拥有琐碎的结构酒店和用户。
Hotel User
----- ----
Id Id
Name Name
我有其他信息,介绍特定用户如何喜欢特定酒店。可能会出现如下:
Preferences
-----------
hotel_id
user_id
tier (int value, 0-9)
我们同意酒店数量超过1M。
搜索我们需要每次运行获得按照等级asc或desc 排序的前10家酒店。 您会为此推荐哪种Elasticsearch架构(索引,映射,查询)?
P.S。我知道这对于SQL来说是微不足道的,但我仍然坚持使用ES实现。
答案 0 :(得分:0)
您可以使用preferences
索引中的此查询:
{
"size": 10,
"query": {
"bool": {
"must": [
{
"term": {
"user_id": "USERID"
}
}
]
}
},
"sort": [
{
"tier": {
"order": "desc"
}
}
]
}
如果您希望hotel_name
在hotel_name
索引中添加preferences
字段,那么您就可以了。