如何使用 get 方法在 elasticsearch python 中搜索
How to search in elasticsearch python using get method
我的索引数据低于
{'took': 0,
'timed_out': False,
'_shards': {'total': 1, 'successful': 1, 'skipped': 0, 'failed': 0},
'hits': {'total': {'value': 4, 'relation': 'eq'},
'max_score': 1.0,
'hits': [{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'COdBR3MB5PHr9J6CaD9A',
'_score': 1.0,
'_source': {'id': '1', 'data': 'Health'}},
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'CedBR3MB5PHr9J6CaD_S',
'_score': 1.0,
'_source': {'id': '2', 'data': 'countries'}},
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'CudBR3MB5PHr9J6CaD_Z',
'_score': 1.0,
'_source': {'id': '3', 'data': 'countries currency'}},
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'C-dBR3MB5PHr9J6CaD_g',
'_score': 1.0,
'_source': {'id': '4', 'data': 'countries language'}}]}}
Q1。 * 如何使用get方法获取id=4
?
我的下面的代码不起作用
firstdoc = es.get(index="my-index_1", id='4')
print(firstdoc['_source'])
NotFoundError Traceback (most recent call last)
预计结束
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'C-dBR3MB5PHr9J6CaD_g',
'_score': 1.0,
'_source': {'id': '4', 'data': 'countries language'}}
下面是将文档推送到elasticsearch的代码
from elasticsearch import Elasticsearch
es = Elasticsearch()
r = [{'id': '1', 'data': 'Health'},
{'id': '2', 'data': 'countries'},
{'id': '3', 'data': 'countries currency'},
{'id': '4', 'data': 'countries language'}]
es.indices.create(index='my-index_1', ignore=400)
for e in enumerate(r):
#es.indices.update(index="my-index_1", body=e[1])
es.index(index="my-index_1", body=e[1])
.get
方法id参数指的是elastic meta id,即_id。要获取包含值为“4”的名为 id 的字段的记录,您需要使用 es.search(index='my-index-1', body={"query": {"match": {"id": "4"}}})
之类的内容 search/query。如果您希望弹性 _id 与 r 中的 id 字段相同,您需要将索引修改为 es.index(index='my-index-1', id=e[1]['id'], body=e[1])
.
我的索引数据低于
{'took': 0,
'timed_out': False,
'_shards': {'total': 1, 'successful': 1, 'skipped': 0, 'failed': 0},
'hits': {'total': {'value': 4, 'relation': 'eq'},
'max_score': 1.0,
'hits': [{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'COdBR3MB5PHr9J6CaD9A',
'_score': 1.0,
'_source': {'id': '1', 'data': 'Health'}},
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'CedBR3MB5PHr9J6CaD_S',
'_score': 1.0,
'_source': {'id': '2', 'data': 'countries'}},
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'CudBR3MB5PHr9J6CaD_Z',
'_score': 1.0,
'_source': {'id': '3', 'data': 'countries currency'}},
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'C-dBR3MB5PHr9J6CaD_g',
'_score': 1.0,
'_source': {'id': '4', 'data': 'countries language'}}]}}
Q1。 * 如何使用get方法获取id=4
?
我的下面的代码不起作用
firstdoc = es.get(index="my-index_1", id='4')
print(firstdoc['_source'])
NotFoundError Traceback (most recent call last)
预计结束
{'_index': 'my-index_1',
'_type': '_doc',
'_id': 'C-dBR3MB5PHr9J6CaD_g',
'_score': 1.0,
'_source': {'id': '4', 'data': 'countries language'}}
下面是将文档推送到elasticsearch的代码
from elasticsearch import Elasticsearch
es = Elasticsearch()
r = [{'id': '1', 'data': 'Health'},
{'id': '2', 'data': 'countries'},
{'id': '3', 'data': 'countries currency'},
{'id': '4', 'data': 'countries language'}]
es.indices.create(index='my-index_1', ignore=400)
for e in enumerate(r):
#es.indices.update(index="my-index_1", body=e[1])
es.index(index="my-index_1", body=e[1])
.get
方法id参数指的是elastic meta id,即_id。要获取包含值为“4”的名为 id 的字段的记录,您需要使用 es.search(index='my-index-1', body={"query": {"match": {"id": "4"}}})
之类的内容 search/query。如果您希望弹性 _id 与 r 中的 id 字段相同,您需要将索引修改为 es.index(index='my-index-1', id=e[1]['id'], body=e[1])
.