es 先查询index1根据查询结果再查询index2 然后分页
时间: 2023-07-07 10:10:32 浏览: 74
可以使用 `terms` 查询和 `nested` 查询来实现先查询 `index1`,再根据查询结果查询 `index2`,最后通过 `from` 和 `size` 进行分页。以下是一个示例请求:
```
POST /index1,index2/_search
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"terms": {
"field1": [
"value1",
"value2"
]
}
}
]
}
},
"aggs": {
"index1_ids": {
"terms": {
"field": "_id",
"size": 10000
}
}
}
}
```
这个示例请求中,先在 `index1` 中查询 `field1` 包含 `value1` 或 `value2` 的文档,然后通过聚合查询获取这些文档的 `_id`。接着,使用 `nested` 查询在 `index2` 中查询这些 `_id` 相关联的文档,最后通过 `from` 和 `size` 分页显示结果。你可以根据自己的需求修改查询语句。
相关问题
es 先查询index1 再查询index2 然后分页
可以使用 `multi_search` API 进行多个查询请求,然后再通过 `from` 和 `size` 进行分页。以下是一个示例请求:
```
POST /_msearch
{}
{"index": "index1"}
{"query": {"match": {"field1": "value1"}}}
{}
{"index": "index2"}
{"query": {"match": {"field2": "value2"}}}
{"from": 0, "size": 10}
```
这个示例请求中,通过 `multi_search` API 发送了两个查询请求,先查询 `index1` 中的 `field1:value1`,再查询 `index2` 中的 `field2:value2`,然后通过 `from` 和 `size` 分页显示结果。你可以根据自己的需求修改查询语句。
es 多个index联合查询分页
可以使用 `bool` 查询将多个索引的查询语句联合起来,然后再通过 `from` 和 `size` 进行分页。以下是一个示例请求:
```
POST /index1,index2/_search
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"match": {
"field1": "value1"
}
},
{
"match": {
"field2": "value2"
}
}
]
}
}
}
```
这个示例请求中,通过 `index1,index2` 指定了需要查询的多个索引,`from` 和 `size` 指定了分页信息,`bool` 查询将两个 `match` 查询语句联合起来,并且要求两个查询语句的结果都需要匹配。你可以根据自己的需求修改查询语句。
阅读全文