Использование python для запроса данных из ElasticSearch - PullRequest
0 голосов
/ 11 июня 2019

Я использую модуль pythonasticsearch для подключения и поиска в моем кластереasticsearch. В кластере есть индекс с именем gs_base, а в gs_base есть нечто, называемое «base_name», в котором хранятся все названия компаний, которые я хочу извлечь. Может кто-нибудь помочь мне с кодом запроса здесь? Спасибо!

Мой код удаляет только все в gs_base, но мне нужно перечислить все названия компаний в поле "base_name"

{
"_index": "gs_base",
"_type": "base",
"_id": "hgi-l2cB8nb3Ce91YtVS",
"_version": 1,
"_score": 1,
"_source": {
...
"base_name":...
...
}

from elasticsearch import Elasticsearch
import json


es = Elasticsearch(hosts="http://10.10.3.39:9200", http_auth=('xxx', 'xxx'))

query_json = {"query": {"bool": {"must": [], "must_not": [], "should": [{"match_all": {}}]}}, "from": 0, "size": 50, "sort": []}

query = es.search(index='gs_base',  body=query_json)
print(query)

Я ожидаю, что результатом будет список названий компаний, сохраненный в base_name

1 Ответ

0 голосов
/ 11 июня 2019

Вы можете использовать _source в запросе dsl, чтобы получить только base_name поле в результате.Для этого обновите query_json до ниже:

query_json = {"query":{"match_all":{}},"_source":["base_name"],"from":0,"size":50}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...