【问题标题】:convert SQL select query with 'IN' operator to elasticsearch search query将带有“IN”运算符的 SQL 选择查询转换为 elasticsearch 搜索查询
【发布时间】:2017-04-21 05:35:33
【问题描述】:

我想将以下 SQL 查询转换为 Elasticsearch 搜索查询。谁能帮帮我,谢谢。

Select sum(total_apples_count) 
from basket where ( apple_color in (
    select apple_color from apple_details where type = "O") || 
    apple_texture in (
        select apple_texture from apple_details where type = "O"
    ) 
);

【问题讨论】:

  • 感谢萨米的建议。当谈到关于 stackoverflow 的问题时,我是个菜鸟。

标签: sql elasticsearch nosql-aggregation nosql


【解决方案1】:

如果您使用的是IN,您可以简单地使用: 追加:

apple_color :()

这个SO 可能会对您有所帮助。

为了在 ES 查询中使用 SUM,您可以在请求正文中执行以下操作:

"aggs":{  
          "total":{  
              "sum":{  
                  "script":"doc['total_apples_count'].value"
               }
           }
       }

Ref 用于聚合sum

【讨论】:

  • 在弹性搜索中将表标题(total_apples_count、apple_details)视为记录类型,并且每个表或数据类型中的记录数是无限的。您链接的示例使用静态值作为参考,例如 :(401 403) 但在我的情况下,我有超过 1,000,000 条记录作为参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
  • 2020-02-17
  • 2018-04-07
  • 1970-01-01
相关资源
最近更新 更多