【发布时间】:2020-06-30 14:53:59
【问题描述】:
假设我有一个 JSON 文档(在本例中是从 packetbeat 发送的),其中包含如下结构:
{
"source": "http://some/url/",
"items": [
{"name":"item1", "value":1},
{"name":"item2", "value":2}
]
}
如何让 Elastic Search 将这些作为单独的文档进行索引,以便我可以像这样检索它们:
GET http://elasicsearch:9200/indexname/doc/item1
{
"source": "http://some/url/",
"item": {
"name":"item1",
"value":1
}
}
GET http://elasicsearch:9200/indexname/doc/item2
{
"source": "http://some/url/",
"item": {
"name":"item2",
"value":2
}
}
injest pipeline 可以使用无痛或其他方式实现此目的吗? (也许重新索引??)
(数据来自Packetbeat,这对于涉及的大量数据是有效的,并且由类似项目的数组组成,比上面的示例更复杂。我没有使用Logstash,为了简单起见宁愿避免使用它, 但如果有必要我可以添加它。显然我可以在发送之前用编程语言拆分文档,但如果可能的话,我想在 Elastic Stack 中执行此操作,以最大限度地减少额外的依赖关系。)
【问题讨论】:
-
我很好奇,您介意解释一下来自 packetbeat 的哪种数据(即哪种协议)创建这些数据数组吗?
-
这是 HTTP 数据。响应的主体是一个 JSON 文档。在这种情况下,我有一个包含 JSON 数组的正文的 HTTP 请求,并且我希望该数组中的每个项目都有一个弹性搜索文档。
标签: elasticsearch elasticsearch-painless packetbeat