OpenSearch 2.3(AWS托管域)SQL Join查询报错求助
解决AWS OpenSearch 2.3 SQL JOIN查询报错的问题
问题根源
OpenSearch 2.x的SQL插件执行JOIN操作时,需要显式指定索引的默认文档类型_doc——尽管OpenSearch已移除自定义类型,但SQL插件仍需明确声明该默认类型,否则会触发“Index type不存在”的错误。
解决方案
方案1:索引名后直接追加默认文档类型
修改查询语句,在每个索引名称后加上._doc:
SELECT COUNT(*) FROM orders._doc o JOIN sessions._doc s ON o.userId = s.userId
方案2:用TYPE关键字指定文档类型
如果觉得第一种写法不够直观,可通过TYPE子句明确声明:
SELECT COUNT(*) FROM orders o TYPE _doc JOIN sessions s TYPE _doc ON o.userId = s.userId
额外验证项
- 确认两个索引中
userId字段的数据类型完全一致(比如均为keyword类型),类型不匹配会导致JOIN结果异常或隐性报错。 - 确保AWS OpenSearch域的SQL插件已正常启用(你单独查询索引正常,此步骤大概率无问题)。
内容的提问来源于stack exchange,提问作者Sten
相关产品推荐
相关产品推荐

