Использование SQL Access в клиенте Python Elasticsearch

Я пытаюсь использовать клиент Python для эластичного поиска для запроса индекса с использованием доступа SQL для эластичного поиска. Я хочу запросить индекс, используя синтаксис sql. Как указать elasticsearch, что он должен читать SQLsyntax?

       def searchText(text):
    t1 = time.time()
    es=Elasticsearch([{'host':'localhost','port':9200}])
    res =  es.search(index='global_res_todos_acco', size=10000, request_timeout=60,
                     body={'query':{
                                        "select * from global_res_todos_acco limit 100 where EntityList = " + text
                                    }
                          }
                     )
    GHList = []
    for hit in res['hits']['hits']:
            GHList.append(hit['_source']['Geohash7'])
    return(GHList)

я получаю следующую ошибку в консоли

TypeError: невозможно сериализовать {'select * from global_res_todos_acco, где EntityList = индийская еда на Пхукете'}

1 ответ

Решение

Если вы используете клиент Python, вам необходимо использовать es.sql.query() функция:

      es=Elasticsearch([{'host':'localhost','port':9200}])
es.sql.query(body={'query': 'select * from global_res_todos_acco...'})
Другие вопросы по тегам