在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

关于ES的嵌套数组返回的问题

Elasticsearch | 作者 alipay | 发布于2017年06月28日 | 阅读数:4088

sfz:"1"
wb:[
{
"上网ID":"a",
"上网时间":"2017-08-01"
},{
"上网ID":"b",
"上网时间":"2017-08-02"
},{
"上网ID":"c",
"上网时间":"2017-08-03"
}
]

wb是嵌套对象数组
查询1:根据sfz,查询,返回上网的记录总数
例 查询sfz =1
返回 sfz:"1",count:3

查询2:根据sfz,上网id,查询该条查询记录情况
例, 查询sfz =1,上网id=a
返回 id:"1",wb.上网id:"a",wb.上网时间:"2017-08-01"
 
这个怎么才能做到上面那2中返回呢
已邀请:

bowen

赞同来自:

你放错代码了吧,放一个dsl 还看能理解,这样不好看.
我理解这是这样的:
"bool":{
"must":{
  "term":{
      sfz:"1"
   },
"term":{
      id:"a"
   }
}
}

novia - 1&0

赞同来自:

这个好像实现不了吧,不能单独查询到数据组中某一条记录

bowen

赞同来自:

你的还没有解决吗?执行一次不行就执行2次
bool:{
"must":[
{"term":{
   "sfz":"1"
},{
"terms":{
"id":["a", "b"...]
}
}
}
]
}
 
这样可以吗?

要回复问题请先登录注册