обновить запрос эластичного поиска с python - PullRequest
0 голосов
/ 11 февраля 2020

Я хотел бы обновить запрос эластичного поиска с помощью python.

. От первого запроса к БД я получаю этот пример запроса в виде строки, которую я преобразую в файле json через:

query = json.loads(string_query)

пример запроса:

{'bool': 
    {'must': [ 
            {'range': {'field': {'gte': lowerbound, 'lt': upperbound}}}
              ],
  'must_not': [{'match_phrase': {'field': {'query': 'word'}}}]}}

Я хотел бы добавить поля запроса:

{'bool': 
    {'must': [ 
            {'range': {'field': {'gte': lowerbound, 'lt': upperbound}}},
            {'range': {'field-2': {'gte': lowerbound, 'lt': upperbound}}}
            {'bool':  {'should': {'bool': {'must': 
                           [ 
                               {'range': {'field': {'gte': lowerbound, 'lt': upperbound}}},
                               {'range': {'field-2': {'gte': lowerbound, 'lt': upperbound}}}
                           ]}}}},
              ],
  'must_not': [{'match_phrase': {'field': {'query': 'word'}}}]}}

возможно ли использовать некоторые библиотеки, или это нужно сделать вручную, создав новый json из первого?

1 Ответ

1 голос
/ 11 февраля 2020

Кстати, на самом деле это python вопрос. Вывод json.loads - это словарь. Вы можете изменить способ работы со словарем python.

Например,

query["bool"]["must"] += [ < your query> ] 

Вы можете передать этот объект запроса в query.post () или библиотеку по вашему выбору для отправки. просьба к ES. Кстати, вы можете посмотреть на elasti c client для python asticsearch-py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...