有人知道是否有办法构建一个弹性搜索查询,按日期对数组进行排序并仅查询最年轻的项目?为了证明我的意思,这是我的数据的一个例子:
[{
_id: "51cd3ae45b99bd960ee0b425",
name: "Example entry",
documents: [
{
title: "Document Title 1",
subDocuments: [
{
date: "Mon Jul 08 2013 12:14:04 GMT+0200 (CEST)",
title: "start working"
},
{
date: "Fri Jul 11 2013 12:14:04 GMT+0200 (CEST)",
title: "finished"
},
{
date: "Thu Jul 10 2013 12:14:04 GMT+0200 (CEST)",
title: "working"
}
]
}
]
}, {
_id: "51cd3ae45b99bd960ee0b426",
name: "Example entry 2",
documents: [
{
title: "Document Title 1",
subDocuments: [
{
date: "Mon Jul 08 2013 12:14:04 GMT+0200 (CEST)",
title: "start working"
},
{
date: "Fri Jul 11 2013 12:14:04 GMT+0200 (CEST)",
title: "working"
}
]
}
]
}]
在这个数据中,我想查询值“working”。正如您所看到的,第一个文档的子文档标题已在其上一个状态中完成,因此不允许在结果集中使用此文档。
有人可以给我一个提示如何构建查询以满足我的要求吗?或者这是不可能的,并且必须在客户端代码中开发?
谢谢和问候克尔斯滕
答案 0 :(得分:0)
我通过编辑我的数据来管理这个问题。我只是将最后一个状态复制到自己的属性。但我认为这可能是解决方案:https://github.com/elasticsearch/elasticsearch/issues/3022