使用Python从ElasticSearch里面读取数据

新手上路,请多包涵

问题描述

我想从ElasticSeach中一个叫gs_base的index中读取一个field的全部内容,叫base_name,里面储存了很多企业名,目的就是把base_name里面的企业名全部读取出来

问题出现的环境背景及自己尝试过哪些方法

base_name在_source中,目前我的代码是把整个gs_base的东西都弄出来,但是我只想要base_name里面的内容,现在有两个query_json,一个是网页里面给的,一个是我自己的来筛选的

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
{
"_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": []}

这段代码是我自己写的尝试读取base_name的内容的

query_json = {"query":{"match_all":{}},"_source":["base_name"],"from":0,"size":100}

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

你期待的结果是什么?实际看到的错误信息又是什么?

期待的结果就是程序返回base_name里面储存的公司名,以列表的形式打出来
目前运行结果是这样,虽然确实有base_name里面的公司名,但是有很多多余的信息,不知道怎么去除
{'took': 128, 'timed_out': False, '_shards': {'total': 5, 'successful': 5, 'skipped': 0, 'failed': 0}, 'hits': {'total': 41554218, 'max_score': 1.0, 'hits': [{'_index': 'gs_base', '_type': 'base', '_id': 'hgi-l2cB8nb3Ce91YtVS', '_score': 1.0, '_source': {'base_name': 'xxx公司'}}

阅读 3.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题