如何在 Elastic 中使用两个索引过滤查询中的每个索引?
How to filter each index in a query with two indexes in Elastic?
我正在尝试进行查询以获取有关 Elastic 中两个不同索引的信息:
GET _search
{
"query": {
"bool": {
"must" : [{
"bool" : {
"should" : [{
"match" : {
"action": "VoiceQueueAbandonAction"
}},
{
"match" : {
"action": "QualifyVoiceWel"
}
}
]
}
}
],
"filter": {
"range": {
"created_at": {
"gte": "2022-05-04 00:00:00",
"lte": "2022-05-04 23:59:59"
}
}
}
}
}
}
输入正确,但重复了信息,因为在索引“qualifications”和“queueevents”中有相同的操作“QualifyVoiceWel”。
在这种情况下,我需要过滤“QualifyVoiceWel”字段仅来自资格索引,而不是来自队列事件!
根据您的要求两个选项:
- 通过/
/_search 查询正确的索引
或
- 索引名称可以作为
_index
在查询中使用。 This 文档提供了更多详细信息
您可以在现有 should
中添加 bool
子句,如下所示:
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"match": {
"action": "VoiceQueueAbandonAction"
}
},
{
"bool": {
"must": [
{
"match": {
"action": "QualifyVoiceWel"
}
},
{
"term": {
"_index": {
"value": "qualifications"
}
}
}
]
}
}
]
}
}
],
"filter": {
"range": {
"created_at": {
"gte": "2022-05-04 00:00:00",
"lte": "2022-05-04 23:59:59"
}
}
}
}
}
}
我正在尝试进行查询以获取有关 Elastic 中两个不同索引的信息:
GET _search
{
"query": {
"bool": {
"must" : [{
"bool" : {
"should" : [{
"match" : {
"action": "VoiceQueueAbandonAction"
}},
{
"match" : {
"action": "QualifyVoiceWel"
}
}
]
}
}
],
"filter": {
"range": {
"created_at": {
"gte": "2022-05-04 00:00:00",
"lte": "2022-05-04 23:59:59"
}
}
}
}
}
}
输入正确,但重复了信息,因为在索引“qualifications”和“queueevents”中有相同的操作“QualifyVoiceWel”。
在这种情况下,我需要过滤“QualifyVoiceWel”字段仅来自资格索引,而不是来自队列事件!
根据您的要求两个选项:
- 通过/
/_search 查询正确的索引
或
- 索引名称可以作为
_index
在查询中使用。 This 文档提供了更多详细信息
您可以在现有 should
中添加 bool
子句,如下所示:
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"match": {
"action": "VoiceQueueAbandonAction"
}
},
{
"bool": {
"must": [
{
"match": {
"action": "QualifyVoiceWel"
}
},
{
"term": {
"_index": {
"value": "qualifications"
}
}
}
]
}
}
]
}
}
],
"filter": {
"range": {
"created_at": {
"gte": "2022-05-04 00:00:00",
"lte": "2022-05-04 23:59:59"
}
}
}
}
}
}