elasticsearch 用elasticsearch查找时间交点,elasticsearch,elasticsearch" /> elasticsearch 用elasticsearch查找时间交点,elasticsearch,elasticsearch" />

elasticsearch 用elasticsearch查找时间交点

elasticsearch 用elasticsearch查找时间交点,elasticsearch,elasticsearch,考虑到以下数据结构: { name: 'track1', durationSec: 300, tags: [ { name: "mike", startSec: 15, endSec: 88 }, { name: "kate", startSec: 54, endSec: 140 } ] }, { name: 'track2', dura

考虑到以下数据结构:

{
    name: 'track1',
    durationSec: 300,
    tags: [
        {
            name: "mike", startSec: 15, endSec: 88
        },
        {
            name: "kate", startSec: 54, endSec: 140
        }
    ]
},
{
    name: 'track2',
    durationSec: 240,
    tags: [
        {
            name: "mike", startSec: 0, endSec: 150
        },
        {
            name: "kate", startSec: 200, endSec: 220
        }
    ]

是否可以使用elasticsearch仅查找标记“mike”和“kate”有交叉点的轨迹(如上图中的轨迹1,交叉点从第二个54到第88个)?

可以使用标签

您可能需要访问_源,而不是文档,因为数组值是平坦的。请参阅有关脚本的更多信息


不过,性能并不是什么问题,因为它既需要运行脚本,也需要访问源代码。如果您不是在海量数据上进行搜索,这可能是合理的。

您事先知道要查找交叉点的标签的名称吗?是的,用户应该能够像“+mike+kate”这样搜索,并且应该只获取这些标签有交叉点的轨迹。所以所有的标签都是事先知道的