gpt4 book ai didi

elasticsearch - 应用程序侧加入Elasticsearch

转载 作者:行者123 更新时间:2023-12-02 23:56:35 25 4
gpt4 key购买 nike

我在Elasticsearch中有两个索引,一个system索引和一个telemetry索引。我想使用系统索引中的过滤器对遥测索引执行查询和聚合。系统索引相对较小,偶尔仅接收新文档,但是遥测索引却要大得多,并且不断接收新文档。这似乎是使用application-side join的理想情况。

我尝试在上一个链接上模拟示例查询,但事实证明filtered查询是deprecated as of ES 5.0。 (为什么在当前文档中有此示例?!)

这是我的查询:

GET /system/_search
{
"query": {
"match": {
"name": "George's system"
}
}
}

GET /telemetry/_search
{
"query": {
"bool":{
"must": {
"multi_match": {
"operator": "and",
"fields": ["systemId"]
, [1] }
}
}
}
}
}

第二个失败,并带有 json_parse_exception,因为由于某种原因,它不喜欢“fields”之后的[]字符。

谁能提供使用应用程序侧联接的简单示例?

定义了此类查询后(也许在Kibana的Dev Tools控制台中),是否可以在Kibana中将其可视化?

最佳答案

使用Elastic无法像在关系数据库中那样执行两个嵌套查询,第一个查询使用第二个查询的响应。 application-side join中的示例意味着您实际上是在应用程序端进行两个查询(两个不同的 flex 请求)。

  • 首先查询您需要过滤的ID列表。
  • 第二个查询,您将获得的ID列表传递给条件过滤器。

  • 当systemId的值不超过1024个时,此方法有效。因为术语查询对术语数量有限制。

    由于此查询不可行,因此您无法在kibana中对其进行可视化。

    在这种情况下,您必须牺牲一点空间,并将systemId添加到映射中。

    祝好运!

    关于elasticsearch - 应用程序侧加入Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52820201/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com