根據 elasticsearch/opendistro 的官方檔案,SQL translate API可以將 SQL 查詢轉換為 elasticsearch DSL。但是,它只回傳列、過濾器、大小和排序運算子,沒有任何索引/表名。
例如,給定 sql query SELECT * FROM library LIMIT 2,SQL translate API 將回應:
{
"size": 2,
"_source": false,
"fields": [
{
"field": "author"
},
{
"field": "name"
},
{
"field": "page_count"
},
{
"field": "release_date",
"format": "strict_date_optional_time_nanos"
}
]
}
library并且缺少索引名稱 ( )。我試過opendistro,它是一樣的。
請注意,對于跨兩個表/索引的聚合查詢,它將回傳Physical Plan并Logical Plan包含TableScan屬性。
uj5u.com熱心網友回復:
目前 Elasticsearch 不支持回傳 Translate API 的索引名稱。已經有開放的 Github 問題#41856。
它將只回傳查詢源,并且您需要使用您在 SQL 中使用的相同索引名稱執行翻譯源,否則它將拋出錯誤或回傳意外結果,如#34594 GitHub 問題中所述。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/444280.html
標籤:弹性搜索 elasticsearch-opendistro
上一篇:查詢中的外包零件
