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”这样搜索,并且应该只获取这些标签有交叉点的轨迹。所以所有的标签都是事先知道的