У меня есть индекс с несколькими документами.Документы содержат следующие поля:
- name
- adhar_number
- pan_number
- acc_number
Я хочу создатьDlas-запрос Elassearch.Для этого запроса доступны два входа, такие как adhar_number и pan_number.Этот запрос должен соответствовать ИЛИ Условие для этого.
Пример: если один документ содержит только adhar_number, то я тоже хочу этот документ.
У меня есть один словарь с содержимым ниже (my_dict):
{
"adhar_number": "123456789012",
"pan_number": "BGPPG4315B"
}
Я попробовал, как показано ниже:
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
s = Search(using=es, index="my_index")
for key, value in my_dict.items():
s = s.query("match", **{key:value})
print(s.to_dict())
response = s.execute()
print(response.to_dict())
Создает запрос ниже:
{
'query': {
'bool': {
'must': [
{
'match': {
'adhar_number': '123456789012'
}
},
{
'match': {
'pan_number': 'BGPPG4315B'
}
}
]
}
}
}
Приведенный выше код дает мне результат с И условием вместо ИЛИ Условием .
Пожалуйста, предложите мне хорошие предложения, чтобы включить ИЛИ Условие.