SQL Translate API
SQL翻訳APIは、JSONドキュメント内のSQLを受け取り、それをネイティブのElasticsearchクエリに翻訳します。例えば:
Python
resp = client.sql.translate(
query="SELECT * FROM library ORDER BY page_count DESC",
fetch_size=10,
)
print(resp)
Ruby
response = client.sql.translate(
body: {
query: 'SELECT * FROM library ORDER BY page_count DESC',
fetch_size: 10
}
)
puts response
Js
const response = await client.sql.translate({
query: "SELECT * FROM library ORDER BY page_count DESC",
fetch_size: 10,
});
console.log(response);
Console
POST /_sql/translate
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"fetch_size": 10
}
Console-Result
{
"size": 10,
"_source": false,
"fields": [
{
"field": "author"
},
{
"field": "name"
},
{
"field": "page_count"
},
{
"field": "release_date",
"format": "strict_date_optional_time_nanos"
}
],
"sort": [
{
"page_count": {
"order": "desc",
"missing": "_first",
"unmapped_type": "short"
}
}
],
"track_total_hits": -1
}
これは、SQLが結果を提供するために実行するリクエストです。この場合、SQLはscroll APIを使用します。結果に集計が含まれている場合、SQLは通常のsearch APIを使用します。
リクエストボディは、SQL search APIと同じparametersを受け入れますが、cursor
は除外されます。