在 elasticsearch/opensearch 中翻译 SQL 查询时如何检索索引名称
how to retrieve the index name when translating SQL query in elasticsearch/opensearch
根据 elasticsearch/opendistro 的官方文档,SQL translate API 可以将 SQL 查询转换为 elasticsearch DSL。但是,它只有 returns 列、过滤器、大小和排序运算符,没有任何 index/table 名称。
例如,给定 sql 查询 SELECT * FROM library LIMIT 2
,SQL 翻译 API 将响应:
{
"size": 2,
"_source": false,
"fields": [
{
"field": "author"
},
{
"field": "name"
},
{
"field": "page_count"
},
{
"field": "release_date",
"format": "strict_date_optional_time_nanos"
}
]
}
并且缺少索引名称 (library
)。我试过opendistro,还是一样。
请注意,对于跨两个 table/index 的聚合查询,它将 return Physical Plan
和 Logical Plan
包含 TableScan
属性。
根据 elasticsearch/opendistro 的官方文档,SQL translate API 可以将 SQL 查询转换为 elasticsearch DSL。但是,它只有 returns 列、过滤器、大小和排序运算符,没有任何 index/table 名称。
例如,给定 sql 查询 SELECT * FROM library LIMIT 2
,SQL 翻译 API 将响应:
{
"size": 2,
"_source": false,
"fields": [
{
"field": "author"
},
{
"field": "name"
},
{
"field": "page_count"
},
{
"field": "release_date",
"format": "strict_date_optional_time_nanos"
}
]
}
并且缺少索引名称 (library
)。我试过opendistro,还是一样。
请注意,对于跨两个 table/index 的聚合查询,它将 return Physical Plan
和 Logical Plan
包含 TableScan
属性。