gpt4 book ai didi

elasticsearch - elasticsearch:在返回的文档中定义字段的顺序

转载 作者:行者123 更新时间:2023-12-03 00:16:18 24 4
gpt4 key购买 nike

我正在向Elasticsearch发送查询,它在其文档中以未知字段顺序进行响应。
如何确定elsasticsearch返回文档中字段的顺序?
我的意思是,我正在发送此查询:

{
"index": "my_index",
"_source":{
"includes" : ["field1","field2","field3","field14"]
},
"size": X,
"body": {
"query": {
// stuff
}
}
}

当它做出回应时,它给了我一些不好的东西。
我最终想将此转换为csv,并要修复csv header 。
有什么事情要做,所以我可以得到像
doc1:{“field1”,“field2”,“field3”,“field14”}
doc2:{“field1”,“field2”,“field3”,“field14”}
...
以与我的“_source”相同的顺序?

谢谢你的帮助。

最佳答案

Elasticsearch中的文档是JSON哈希/映射,定义为maps are unordered

解决此问题的一种解决方案是使用Logstash,以便使用 elasticsearch input从ES中提取文档,然后使用 csv output将它们以CSV输出。这样,您可以保证CSV文件中的字段具有与指定完全相同的顺序。另一个好处是,您无需编写自己的样板代码即可从ES中提取并下沉到CSV,Logstash可免费为您完成所有操作。

Logstash配置如下所示:

input {
elasticsearch {
hosts => "localhost"
query => '{ "query": { "match_all": {} } }'
size => 100
index => "my_index"
}
}
filter {}
output {
csv {
fields => ["field1","field2","field3","field14"]
path => "/path/to/file.csv"
}
}

关于elasticsearch - elasticsearch:在返回的文档中定义字段的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35958136/

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