首页 > 解决方案 > Python 3:如何使用 json 变量自动创建索引并发送到 Elasticsearch?

问题描述

我想从使用 curl 获得的 json 变量创建一个索引,它包含这些数据

{
"test.mydomain.xyz:1019":{
"infoAddr":"x.x.x.x:1022",
"infoSecureAddr":"x.x.x.x:0",
"xferaddr":"x.x.x.x:1019",
"lastContact":6,
"usedSpace":384635032546,
"adminState":"In Service",
"nonDfsUsedSpace":283930161,
"capacity":30697676811776,
"numBlocks":24322,
"version":"2.7.3.2.6.5.23-1",
"used":384635032546,
"remaining":30311575148182,
"blockScheduled":6,
"blockPoolUsed":384635032546,
"blockPoolUsedPercent":1.2529777,
"volfails":0,
"lastBlockReport":207,
"clusterName":"test.mydomain.xyz:1019"
},

然后我知道我必须创建一个索引也映射,但我不知道我应该从什么开始。从谷歌搜索似乎没有多大帮助。

标签: pythonpython-3.xelasticsearch

解决方案


您可以先创建一个映射,根据您的示例,这将是最佳实践。您必须告诉 es 女巫字段需要编制索引(= 可搜索)以及如何编制索引。例如,在您的示例中 clusterName 和 version 应该是 KeyWord。这将优化集群(在资源和性能方面)。第二种解决方案,快速而肮脏,只是索引一些文档和弹性将为您创建映射。请注意,一旦创建了索引的映射,就无法更新(添加新字段除外)。如果您更改映射,则必须重新创建索引并重新索引数据。


推荐阅读