我有一组在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/