问题描述
我想从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公司'}}