Использование 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...'})