【问题标题】:elasticsearch-mongo-river How to change data fieldelasticsearch-mongo-river 如何更改数据字段
【发布时间】:2014-09-09 07:07:39
【问题描述】:

我使用mongodb将登录数据存储为一个集合,例如:

// userA 登录模块 mA:

{
  "_id" : ObjectId("uuid 1"),
  "user" : "userA",
  "module" : "mA",
  "collectDate" : ISODate("2013-03-18T08:25:11.601Z")
}

// userA也登录模块mB:

{
  "_id" : ObjectId("uuid 2"),
  "user" : "userA",
  "module" : "mB",
  "collectDate" : ISODate("2013-03-18T08:34:15.106Z")
}

// userB登录模块mB:

{
  "_id" : ObjectId("uuid 3"),
  "user" : "userB",
  "module" : "mB",
  "collectDate" : ISODate("2013-03-18T08:34:15.106Z")
}

然后使用map-reduce框架统计每个用户每天多少次 结果如下所示: // 计数为 2,因为 userA 登录 mA 和 mB

{
  "_id" : {
    "user" : "userA",
    "date" : ISODate("2013-03-18")
  },
  "value" : {
    "count" : 2.0
  }
}

//计数为1,因为userB登录mB

{
  "_id" : {
    "user" : "userB",
    "date" : ISODate("2013-03-18")
  },
  "value" : {
    "count" : 1.0
  }
}

问题是如何将缩减的结果移动到 Elastic 搜索中? 我希望 ES 中的数据显示为:

{
  "user" : "userA",
  "date" : ISODate("2013-03-18")
  "count" : 2
},
{
  "user" : "userB",
  "date" : ISODate("2013-03-18")
  "count" : 1
}

如何更改嵌套数据?

我使用以下命令:

curl -XPUT "es.server.com:9200/_river/Entity/_meta" -d '
{
  "type":"mongodb",
  "mongodb":{
    "servers":[{"host":"mongodb.server.com","port":27017 }],
    "options":{"secondary_read_preference":true},
    "db":"udc","collection":"Entity"
  },
  "index":{
    "name":"udc","type":"Entity"
  }
}'

但是导入的数据不符合我的要求,如下图:

{
  _index: udc
  _type: user
  _id: { 
    "user" : "userA" , 
    "date" : { 
      "$date" : "2013-06-22T07:00:00.000Z"
    }
  }
  _version: 1
  _score: null
  _source: {
    _id: {
      date: 2013-06-22T07:00:00.000Z
      user: userA
    }
    value: {
      count: 18
    }
  }
  sort: [
    user
  ]
}

【问题讨论】:

    标签: mongodb elasticsearch elasticsearch-mongo-river


    【解决方案1】:

    查看scripts 的河流。

    你想要的是类似的东西

    ctx.document.user= ctx.document._id.user;...;delete ctx.document._id; delete ctx.document.value;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 2013-08-17
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多