Elasticsearch должен выполняться с несколькими условиями

#python #python-3.x #elasticsearch

#python #python-3.x #elasticsearch

Вопрос:

Я начинающий программист на python. Теперь я интегрировал версию Elasticseach 6.8.1 с python, и теперь мне нужно удалить данные из elasticsearch с помощью pyhton language. Для этого я написал следующий запрос

  query = {'bool':{'must':[
                {'term':{'db_id':25}},
                {'terms': {'type': ['user_likes','likes']}}
            ]}}
es_client.delete_by_query(index="user_likes", doc_type='doc', body=query)
  

Когда я запускаю этот запрос, я получаю следующую ошибку

{RequestError}RequestError(400, ‘parsing_exception’, ‘Неизвестный ключ для START_OBJECT в [bool].’)

Я не нашел в примере, как я могу использовать must с несколькими условиями для delete_by_query. как я могу выполнить этот запрос для delete_by_query?

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

1. эта ошибка не связана с какой-либо ошибкой в python, в вашем запросе есть ошибка. пожалуйста, поделитесь любым документом 1 из вашего elasticsearch index amp; каков ваш ожидаемый результат.

2. @SowjanyaRBhat Я обновил запрос, мне просто нужно удалить данные, используя этот запрос, который я пишу

Ответ №1:

Попробуйте изменить то, что вы объявили относительно query этого :

  query = {'query': 
           {'bool':
              {'must':[
                {'term':{'db_id':int(model['id'])}},
                {'terms': {'type': ['user_likes','likes']}}
        ]}}
    }
  

То, что я сделал, это просто добавил query параметр — внутри которого bool должен появиться, но вы напрямую сохранили bool , я предполагаю, что это будет проблемой.
Если он все еще не работает, предоставьте более подробную информацию о ваших данных и ожидаемых результатах