如何搜索与某个查询匹配的文档,其中存在与附近时间单独查询匹配的文档

时间:2016-09-28 15:36:11

标签: elasticsearch

我有一组在elasticsearch中编入索引的文档,这些文档包含大量数据,但有两个带有差异字段的样式。

第一个有这样的风格:

{
  type: "measurement",
  startTime: "iso-time-goes-here",
  duration: 30, // seconds
  locationId: "abc"
}

第二种风格如下:

{
  type: "event",
  startTime: "iso-time-goes-here",
  locationId: "abc"
}

其他字段在文档之间是相同的。

我想运行一个搜索,例如“显示所有event个文档,其中有measurement文档距离它不到1分钟,locationId s匹配”

在elasticsearch中这样的查询是否可行?我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

不,Elasticsearch没有联接,这是您在此处需要的,因为您正在使用locationId上的事件加入测量值。

也许您可以在索引时将测量值反规范化为事件,然后您可以获得信息。如果你可以管理这个,那将是最快的。其他任何事情,比如做多个查询然后过滤你的结果集可能会变得昂贵;这就是Elasticsearch不支持连接的原因。但是从你所描述的那些可能不适合你的东西开始。