ElasticSearchSearch APIテスト


ElasticSearchのAPIテスト


公式サイトで提供されているAPIを使用してテストを行います.

0.サービスの開始

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

1.現在存在するインデックス情報をチェック

curl 'localhost:9200/_cat/indices?v'
命令を出してみる.
health status index                           uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana_7.13.3_001              GBGe6W1TSk6iXsPGWT4kQA   1   0         12            0      2.1mb          2.1mb
yellow open   bank                            YnmIukjxRm2k0CERwzBxyQ   1   1       1000            0    379.3kb        379.3kb
green  open   .apm-custom-link                0K_O23HVSjOoBvAD37sxhg   1   0          0            0       208b           208b
green  open   .kibana-event-log-7.13.3-000001 AKHLKRZcQK63_R7L6Qc3VA   1   0          1            0      5.6kb          5.6kb
green  open   .apm-agent-configuration        hrkWQcb0S8-zjlDhI-j8CA   1   0          0            0       208b           208b
green  open   .kibana_task_manager_7.13.3_001 gXsCASMpTySwy1PUXR30ww   1   0          9            0     14.8kb         14.8kb
以前bulkAPIを使用して挿入された銀行インデックスがあり、残りはdepoleによって生成されたデータです.

2.search API-検索


郵便配達人を郵便配達人にした.
端末にpostmanを入力します.インストールされていない場合は、
トランスファを見てインストールしてください!
クエリーDSLでbodyにインストールして送信します.
GET方式
http://localhost:9200/bank/_search
本文の内容
{
  "query": {
    "match_all": {
    }
  }
}
結果をスクリーンショットで見るとこうなります!

結果のjsonを表示すると、次のように表示されます.
1000個の装飾図があり、1つだけが例です.

    "took": 900, -> 쿼리 실행시간이 900ms
    "timed_out": false, -> 쿼리 실행하다가 시간 초과가 됐나?
    "_shards": {
        "total": 1, -> 쿼리를 요청한 샤드의 개수 / 이 인덱스는 1개의 샤드로 이뤄져 있음을 알 수 있다.
        "successful": 1, -> 검색 요청에 성공한 샤드의 개수 
        "skipped": 0, -> 스킵한 샤드의 개수
        "failed": 0 -> 실패한 샤드의 개수 
    },
    요청으로 리턴된 데이터 중, 여기까지가 메타 필드이다.
    --------------------------------------------------
    "hits": {
        "total": {
            "value": 1000, ->매칭된 전체 문서 개수
            "relation": "eq" -> 원래 디폴트로 매핑되는 문서의 개수는 최대 10000개이다. 만약에 문서가 20000개이면 10000개만 가져오되, gte라고 나온다.(greater than equal)
        },
        "max_score": 1.0, -> 일치하는 도큐먼트의 스코어 값 중 가장 높은 값
        "hits": [ -> 스코어가 높은 상위 도큐먼트 10개를 보여줌 
            {
                "_index": "bank", -> 뱅크
                "_type": "account", -> 계정
                "_id": "1", -> 아이디가 1이다.
                "_score": 1.0, -> 가장 높은 스코어
                "_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"
                }
            }
 		]
では、DSLを集中的にチェックしましょう.
次のヒントで確認!!