SQL Translate API

SQL翻訳APIは、JSONドキュメント内のSQLを受け取り、それをネイティブのElasticsearchクエリに翻訳します。例えば:

Python

  1. resp = client.sql.translate(
  2. query="SELECT * FROM library ORDER BY page_count DESC",
  3. fetch_size=10,
  4. )
  5. print(resp)

Ruby

  1. response = client.sql.translate(
  2. body: {
  3. query: 'SELECT * FROM library ORDER BY page_count DESC',
  4. fetch_size: 10
  5. }
  6. )
  7. puts response

Js

  1. const response = await client.sql.translate({
  2. query: "SELECT * FROM library ORDER BY page_count DESC",
  3. fetch_size: 10,
  4. });
  5. console.log(response);

Console

  1. POST /_sql/translate
  2. {
  3. "query": "SELECT * FROM library ORDER BY page_count DESC",
  4. "fetch_size": 10
  5. }

これにより返されるのは:

Console-Result

  1. {
  2. "size": 10,
  3. "_source": false,
  4. "fields": [
  5. {
  6. "field": "author"
  7. },
  8. {
  9. "field": "name"
  10. },
  11. {
  12. "field": "page_count"
  13. },
  14. {
  15. "field": "release_date",
  16. "format": "strict_date_optional_time_nanos"
  17. }
  18. ],
  19. "sort": [
  20. {
  21. "page_count": {
  22. "order": "desc",
  23. "missing": "_first",
  24. "unmapped_type": "short"
  25. }
  26. }
  27. ],
  28. "track_total_hits": -1
  29. }

これは、SQLが結果を提供するために実行するリクエストです。この場合、SQLはscroll APIを使用します。結果に集計が含まれている場合、SQLは通常のsearch APIを使用します。

リクエストボディは、SQL search APIと同じparametersを受け入れますが、cursorは除外されます。