elasticsearch - 如何搜索与某些查询匹配的文档,如果在附近的时间存在与另一个查询匹配的文档

标签 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匹配”

在Elasticsearch中这样的查询可能吗?我怎样才能做到这一点?

最佳答案

不,Elasticsearch没有连接,这是您需要的,因为您要结合使用locationId上的事件进行测量。

也许您可以在索引时间将度量反规范化为事件,然后在那里获取信息。如果您能解决这个问题,那将是最快的。进行多个查询然后过滤结果集之类的其他任何事情都可能会变得昂贵。这就是Elasticsearch不支持联接的原因。但是从您的描述来看,这可能对您不起作用。

关于elasticsearch - 如何搜索与某些查询匹配的文档,如果在附近的时间存在与另一个查询匹配的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39751962/

相关文章:

angular - Firebase Firestore使用带有内置查询的外部服务来进行全文搜索

node.js - 在Elasticsearch 6x中何处添加索引缓冲区大小

elasticsearch - Kubernetes-无法适应服务,但可以适应Pod

elasticsearch - Elasticsearch:通过映射对索引字段进行GET请求

elasticsearch - 在服务器上安装 Elasticsearch 但如果从另一台机器无法连接到它

elasticsearch - 无法在Kibana仪表板中添加索引

elasticsearch - 如何使用单个 Elastic 搜索查询进行重复数据删除和执行聚合?

elasticsearch - 当子元素是字符串数组时,搜索elasticsearch查询

logging - 如何聚合来自多个 Elasticsearch 索引的 Kibana 信息?

mongodb - 适合数百万个事件的数据存储?