如何通过pythonapi在elasticsearch中执行put-in-curl

envsm3lx  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(260)

下面是两个curl命令。
我需要通过pythonapi在elasticsearch的索引curl中添加以下内容,如何实现这一点

curl -XPUT 'http://localhost:9200/my_country_index_5/country/1' -d '
{
 "name": "Afginastan"
}'

curl -XPUT 'http://localhost:9200/my_country_index_5/state/1?parent=3' -d '
{
 "name": "Andra Pradesh",
 "country": "India"
}'

curl -XPUT 'http://localhost:9200/my_country_index_5/city/1?parent=5' -d '
{
 "name": "Kolhapur",
 "state": "Maharashtra"
}'

我已经在python中创建了索引,下面是代码

from elasticsearch import Elasticsearch
es = Elasticsearch()
es.indices.create(index='my_country_index_5', ignore=400)

如何放入同一索引( my_country_index_5 )但不同的文件 country, state, city ```
doc = {
"name": "Afginastan"
}
res = es.index(index="my_country_index_5", id=1, body=doc)
print(res['result'])

uqcuzwp8

uqcuzwp81#

如果我理解的很好,你想 type 在python中显示为 doc_type . type 从版本7中省略。在低于7的elasticsearch版本中,您可以通过发送 doc_type 在索引参数中。

res = es.index(index="my_country_index_5", id=1, doc_type="state",  body=doc)
res = es.index(index="my_country_index_5", id=1, doc_type="city",  body=doc)
res = es.index(index="my_country_index_5", id=1, doc_type="country",  body=doc)

相关问题