elasticsearch 如何使用logstash更新现有elasticsearch文档中的嵌套数组?,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch 如何使用logstash更新现有elasticsearch文档中的嵌套数组?,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch 如何使用logstash更新现有elasticsearch文档中的嵌套数组?

elasticsearch 如何使用logstash更新现有elasticsearch文档中的嵌套数组?,elasticsearch,logstash,elasticsearch,Logstash,假设我在以下索引中有一个现有文档 访客-20150412 { "_index" : "visitors-20150412", "_type" : "visitor", "_id" : "62df20c58f008fea", "_source" : { "ID" : "62df20c58f008fea", "ip" : "123.456.789.0", "referrer" : "google", "pages" : [] } 然后我有一个访问者访问

假设我在以下索引中有一个现有文档

访客-20150412

{       
"_index" : "visitors-20150412",
"_type" : "visitor",
"_id" : "62df20c58f008fea",
"_source" : {
    "ID" : "62df20c58f008fea",
    "ip" : "123.456.789.0",
    "referrer" : "google",
    "pages" : []
}
然后我有一个访问者访问的“页面”日志,我希望logstash通读并添加到“页面”数组中。页面文档可能如下所示:

{
   "visitorID" : "62df20c58f008fea",
   "url" : "http://www.example.com/whatever",
   "title" : "Page Title"
}

如何设置日志存储配置文件,使其将此“页面”附加到原始访客文档中,并带有“62df20c58f008fea”?

如何?那也许行。没有以父子关系存储。如果我想在原始访客文档中增加一个计数器,我该怎么办。假设有一个total_pages属性。logstash可以增加或更新它吗?也许可以使用某种ctx groovy脚本魔法?如果要更新原始文档,请确保在从logstash输出时将“type”和“_id”设置为匹配。在这种情况下,它应该更新现有文档。我已将_父项作为字段添加到“页面”文档中,但logstash似乎没有插入它。我尝试使用RESTAPI直接插入它,结果得到一个“RoutingMissingException[路由是必需的”错误消息。如果我将parent=\u parent添加到REST API URL中,它会工作。logstash不添加它吗?我应该做些别的事情让logstash添加它吗?我以为映射会自动处理基于父项的路由。因此,似乎我无法成功更新文档,因为似乎没有一种方法让我添加它在logstash中指定路由信息,并且对于父/子关系,它们必须路由到同一个碎片。我已经尝试在elasticsearch映射中为这些文档类型设置路径,但在执行更新时,默认情况下似乎没有使用它们。另外,在elasticsearch 1.5中设置路径似乎不受欢迎?关于如何设置路径,有什么想法吗要将路由信息指定给logstash?