gpt4 book ai didi

python - 使用 Bulk-API 使用 Elasticsearch-py 将时间戳添加到 ElasticSearch

转载 作者:太空狗 更新时间:2023-10-30 02:43:49 29 4
gpt4 key购买 nike

我正在尝试为我的数据添加时间戳,让 elasticsearch-py 对其进行批量索引,然后使用 kibana 显示数据。

我的数据显示在 kibana 中,但我的时间戳未被使用。配置索引模式后转到“发现”选项卡时,我得到 0 个结果(是的,我尝试调整搜索时间)。

这是我的批量索引 json 的样子:

{'index': 
{'_timestamp': u'2015-08-11 14:18:26',
'_type': 'webapp_fingerprint',
'_id': u'webapp_id_redacted_2015_08_13_12_39_34',
'_index': 'webapp_index'
}
}

****JSON DATA HERE***

这将被 elasticsearch 接受并将导入到 Kibana 中,但 _timestamp 字段实际上不会被索引(在“时间字段名称”下配置索引模式时它确实显示在下拉列表中)。

我也试过像这样格式化 metaFields:

{'index': {
'_type': 'webapp_fingerprint',
'_id': u'webapp_id_redacted_2015_08_13_12_50_04',
'_index': 'webapp_index'
},
'source': {
'_timestamp': {
'path': u'2015-08-11 14:18:26',
'enabled': True,
'format': 'YYYY-MM-DD HH:mm:ss'
}
}
}

这也行不通。

最后,我尝试在索引中包含 _timestamp 字段并应用格式,但我在使用 elasticsearch 时遇到错误。

{'index': {
'_timestamp': {
'path': u'2015-08-11 14:18:26',
'enabled': True,
'format': 'YYYY-MM-DD HH:mm:ss'
},
'_type': 'webapp_fingerprint',
'_id': u'webapp_id_redacted_2015_08_13_12_55_53',
'_index': 'webapp_index'
}
}

错误是:

elasticsearch.exceptions.TransportError: 
TransportError(500,u'IllegalArgumentException[Malformed action/metadata
line [1], expected a simple value for field [_timestamp] but found [START_OBJECT]]')

如果有人能提供任何帮助,我们将不胜感激。如果我没有很好地解释这个问题,我深表歉意。如果我需要澄清更多,请告诉我。谢谢。

最佳答案

解决了我自己的问题。基本上,我需要在创建索引时为时间戳添加映射。

request_body = {
"settings" : {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings" : {
"_default_":{
"_timestamp":{
"enabled":"true",
"store":"true",
"path":"plugins.time_stamp.string",
"format":"yyyy-MM-dd HH:m:ss"
}
}
}
}
print("creating '%s' index..." % (index_name))
res = es.indices.create(index = index_name, body = request_body)
print(" response: '%s'" % (res))

关于python - 使用 Bulk-API 使用 Elasticsearch-py 将时间戳添加到 ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31994187/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com