Elasticsearchノート-002-API汎用オプションパラメータ

5470 ワード

[toc]
1.API共通オプションパラメータ
1.1. 結果データの美観、フォーマット
  • ?pretty=trueはjson
  • にフォーマットされます.
  • ?format=yaml結果はyml
  • として示す
  • ?human=false閉鎖1 h/1 kb等人間化転換
  • 1.2応答フィルタ:filter_path
    1.2.1応答フィルタの使用法
    元のリクエスト:
    GET /bank/_doc/1

    元の応答:
    {
      "_index" : "bank",
      "_type" : "_doc",
      "_id" : "1",
      "_version" : 3,
      "_seq_no" : 1001,
      "_primary_term" : 1,
      "found" : true,
      "_source" : {
        "account_number" : 1,
        "balance" : 39225,
        "firstname" : "Amber",
        "lastname" : "Duke",
        "age" : 32,
        "gender" : "M",
        "address" : "880 Holmes Lane",
        "employer" : "Pyrami",
        "email" : "[email protected]",
        "city" : "Brogan",
        "state" : "IL"
      }
    }

    応答フィルタを追加:
    GET /bank/_doc/1?filter_path=_version,_source.firstname,_source.age,_source.balance

    追加後の応答:
    {
      "_version" : 3,
      "_source" : {
        "balance" : 39225,
        "firstname" : "Amber",
        "age" : 32
      }
    }

    1.2.2応答フィルタはワイルドカード「*」をサポートする
    要求:
    #     
    GET /bank/_doc/1?filter_path=_version,_source.*name,_source.age,_source.*e

    応答:
    {
      "_version" : 3,
      "_source" : {
        "balance" : 39225,
        "firstname" : "Amber",
        "lastname" : "Duke",
        "age" : 32,
        "state" : "IL"
      }
    }

    元の応答は上の1.2.1に列挙されている.
    1.2.3応答フィルタリング:除外フィールド「-」
    要求:
    GET /bank/_doc/1?filter_path=-_type,-_source

    フィルタ後の応答:
    {
      "_index" : "bank",
      "_id" : "1",
      "_version" : 3,
      "_seq_no" : 1001,
      "_primary_term" : 1,
      "found" : true
    }
    _typeフィールドと_sourceノードは、すべて除外されています.
    1.2.4応答フィルタ:*-混用時、先に排除してからフィルタする
    例1:
    GET /bank/_doc/1?filter_path=_version,_source.*name,_source.age,_source.*e,-_source

    結果:
    {
      "_version" : 3
    }

    例2:
    GET /bank/_doc/1?filter_path=_version,_source.*name,_source.age,_source.*e,-_source.lastname

    結果:
    {
      "_version" : 3,
      "_source" : {
        "balance" : 39225,
        "firstname" : "Amber",
        "age" : 32,
        "state" : "IL"
      }
    }

    1.3時間単位2d for 2 days d
    Days h
    Hours m
    Minutes s
    Seconds ms
    Milliseconds micros
    Microseconds nanos
    Nanoseconds
     1.4バイト単位b
    Bytes kb
    Kilobytes mb
    Megabytes gb
    Gigabytes tb
    Terabytes pb
    Petabytes
    1.5印刷エラースタックトレース:error_trace=true
    次の3つの出力を見てください
    GET /library/_search?size=1&filter_path=hits.hits._source
    {
      "hits" : {
        "hits" : [
          {
            "_source" : {
              "title" : "Book #1",
              "rating" : 200.1
            }
          }
        ]
      }
    }

    これは正しい時の出力です.
    エラーパラメータsize=Yを伝えます
    GET /library/_search?size=Y&filter_path=hits.hits._source

    出力:
    {
      "error": {
        "root_cause": [
          {
            "type": "illegal_argument_exception",
            "reason": "Failed to parse int parameter [size] with value [Y]"
          }
        ],
        "type": "illegal_argument_exception",
        "reason": "Failed to parse int parameter [size] with value [Y]",
        "caused_by": {
          "type": "number_format_exception",
          "reason": "For input string: \"Y\""
        }
      },
      "status": 400
    }

    次に、完全なスタック情報の方法を見てみましょう.error_trace
    GET /library/_search?size=Y&filter_path=hits.hits._source&error_trace=true

    outpu:
    {
      "error": {
        "root_cause": [
          {
            "type": "illegal_argument_exception",
            "reason": "Failed to parse int parameter [size] with value [Y]",
            "stack_trace": "[Failed to parse int parameter [size] with value [Y]]; nested: IllegalArgumentException[Failed to parse int parameter [size] with value [Y]]; nested: NumberFormatException.........."
          }
        ],
        "type": "illegal_argument_exception",
        "reason": "Failed to parse int parameter [size] with value [Y]",
        "caused_by": {
          "type": "number_format_exception",
          "reason": "For input string: \"Y\"",
          "stack_trace": "java.lang.NumberFormatException: For input string: \"Y\"
    \tat java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)................" }, "status": 400 }

    ........多くの出力情報を省きました!