鉴于以下示例用户和产品文档:
{
"_id": "1",
"_type": "user",
"_source": {
"id": "1",
"following": ["2", "3", ... , "10000"]
}
{
"_id": "1",
"_type": "product",
"_source": {
"id": "1",
"owner_id": "2"
}
{
"_id": "2",
"_type": "product",
"_source": {
"id": "2",
"owner_id": "10001"
}
我想获取属于id = 1的用户所属的用户的产品。我不想做两个不同的查询(首先是让用户跟随用户id = 1,然后是第二个用于获取产品),因为用户id = 1跟随~10000个用户。
有没有办法只使用一个查询获得结果?
答案 0 :(得分:0)
我认为您正在寻找terms
查询:
https://www.elastic.co/guide/en/elasticsearch/reference/5.5/query-dsl-terms-query.html
查看他们的文档,他们的示例与您的案例非常相似:
GET /product/_search
{
"query" : {
"terms" : {
"owner_id": {
"index": "<your_index>",
"type": "user",
"id": "1",
"path": "following"
}
}
}
}