Elasticsearch: Как выполнять поиск только со всеми входными данными

#elasticsearch #zipkin

Вопрос:

Я ищу решение этой проблемы

Проблема: у меня есть две записи A:Трассировка(идентификатор, идентификатор трассировки, теги) B:Трассировка(идентификатор,идентификатор трассировки, теги) обе записи имеют одинаковый идентификатор трассировки и разные теги

для этого я использовал предложение should, которое возвращает данные, даже если в нем записан только тег have. Но я хочу, чтобы, если в запросе есть теги, которых нет в записях, был пустой ответ.

это запрос, который я фактически использовал для данных Zipkin ELasticsearch

 GET zipkin-span-2021-12-08/_search?size=10 {  "query": {  "bool": {  "must": [  {  "bool": {  "should": [  {  "term": {  "_q": "smpp.charged=false"  }  },  {  "term": {  "_q": "connection.type=WEEK"  }  },  {  "term": {  "_q": "connection.type=a"  }  }  ]  }  }  ]  }  },  "aggs": {  "same_treace_id": {  "terms": {  "field": "traceId",  "size": 10,  "min_doc_count": 2  }  }  },  "fields": [  "traceId"  ],  "_source": true }  

Комментарии:

1. Не совсем ясно, какого результата вы ожидаете от этого запроса?

2. я хочу, чтобы, если в каком-либо термине нет записи, то записи вообще не должно быть.