ElasticSearch Opendistro SQL多个EXISTS解决

问题描述

我正在对名为nested_nicknames的嵌套文档运行查询(它也嵌套在映射中)

模式基本上是

userAccounts

我正在尝试运行的opendistro查询

{
 id:int
 nested_nicknames: [{
                      value:string,isfavourite:bool
                   }]
}

但是运行它会给我这个错误

POST _opendistro/_sql
{
  "query": """SELECT i.id FROM test_nicknames_index as i WHERE EXISTS 
  (SELECT 1
    FROM i.nested_nicknames  AS q
    WHERE q.value="sql" AND q.isfavourite=true LIMIT 1)
    AND EXISTS 
  (SELECT 1
    FROM i.nested_nicknames  AS q
    WHERE q.value="sqldistro" AND q.isfavourite=false LIMIT 1) 
  LIMIT 10;"""
}

但是,如果我创建弹性查询效果会更好! 我想知道是否可以通过上述SQL查询生成以下弹性查询

{
  "error": {
    "reason": "Invalid sql query","details": "Unsupported subquery. Only one EXISTS or IN is supported","type": "sqlFeatureNotSupportedException"
  },"status": 400
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)