Elasticsearch 시도해 보았습니다.

업무로 Elasticsearch를 만졌으므로 복습.

환경



Windows10

다운로드



Elasticsearch와 Kibana는 사전에 다음에서 다운로드하여 압축을 풉니다.
htps //w w. 에 s c. 코 / jp / s rt


시작



각각 이하를 더블 클릭으로 기동할 수 있다.
  • Elasticsearch
  • C:\~~\elasticsearch-7.10.0-windows-x86_64\elasticsearch-7.10.0\bin\elasticsearch.bat
  • Kibana
  • C:\~~\kibana-7.10.0-windows-x86_64\bin\kibana.bat

    연결 확인



    이하 URL로 접속할 수 있으면, 기동 성공!
  • Elasticsearch

  • http://localhost:9200/
    cluster_name라든지 version라든지 쓰고 있는 JSON이 표시될 것
  • Kibana


  • Kibana로 만져보세요



    Kibana Dev Tools 에서 작성해 보자.


    ↓이런 느낌의 화면에서, 왼쪽에 query를 기술해 실행하면, 우측에 리스폰스가 표시된다.
    query 화면의 맨 오른쪽의 로 실행할 수 있다. (실행 대상 행을 선택하고 ctrl + Enter에서도 실행 가능)


    색인 생성



    인덱스는 DB에서 말하는 데이터베이스와 같은 것···?test_index 라는 인덱스를 만들어 보자.
    PUT test_index
    



    만들 수 있는지 확인.
    GET _cat/indices?v
    



    보충


    yellow open test_index lBZ1wx4vQyKcU8danKLkRQ 1 1 0 0 208b 208bhealth 하지만 yellow 입니다만, 이것은 복제본 (복제)을 작성할 수 없기 때문입니다.
    데이터가 파손되었을 때 등이나 부하 분산에 사용되는 레플리카는, 디폴트로 1개 준비하도록 설정되어 있다.
    (복제는 별도의 노드에 만들어야 함)
    로컬 환경은 데이터 노드는 1대이므로, 복제본을 작성할 수 없어-의 yellow 상태.
    그대로 문제 없지만, 아무래도 green 로 하고 싶은 경우는, 일단 인덱스를 삭제해 복제본 1대로 index를 재작성하면 OK.
    #インデックス削除
    DELETE test_index
    
    #レプリカ数0でインデックス再作成
    PUT test_index
    {
      "settings": {
        "number_of_replicas": 0
      }
    }
    
    #設定確認(test_index.settings.number_of_replicasが0になっていること)
    GET test_index/_settings
    

    유형 작성



    DB로 말하는 테이블과 같은 것···?
    ↓에서 타입을 정의하려고했지만,
    POST test_index/test_type/
    {
        "mappings" : {
            "qq" : {
                "properties" : {
                    "id" : {
                      "type" : "integer"
                      },
                    "name" : {
                      "type" : "string"
                    }
                }
            }
        }
    }
    

    _#! Deprecation: [types removal] Specifying types in document index requests is deprecated, use the typeless endpoints instead (/{index}/_doc/{id},/{index}/_doc, or/{index}/_create/{id}).

    어느새 비추천이 되었으므로 test_index/_doc 로 등록해 봅니다.
    POST test_index/_doc
    {
      "test_id": 1,
      "test_name": "てすとねーむ"
    }
    

    등록할 수 있었으므로, mapping 를 확인.
    GET test_index/_mapping
    
    #GET test_index/_mapping 実行結果
    {
      "test_index" : {
        "mappings" : {
          "properties" : {
            "test_id" : {
              "type" : "long"
            },
            "test_name" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            }
          }
        }
      }
    }
    

    방금 전의 데이터는 다음과 같은 정의로 작성되었습니다.
    (정의하지 않아도 데이터 등록 가능한 점은 변하지 않고, type 라는 개념이 없어지는 것 같네요.)

    인덱스를 만들 때 mapping (DB에서 말하는 CREATE TABLE ?) 지정을 지정하려면 아래에서 OK! 해야합니다. . .
    PUT test_index2
    {
      "settings": {
        "number_of_replicas": 0               // レプリカ数指定
      },
      "mappings": {
        "properties": {
          "test_id": {             // test_id フィールド
            "type":"integer"
          },
          "test_name": {                      // test_nameフィールド
            "type": "keyword"         
          }
        }
      }
    }
    

    또, mapping 는 추가는 가능합니다만, 삭제·변경은 할 수 없습니다.
    # NG
    # 既存フィールド(test_id)のtypeをinteger→long
    PUT test_index2/_mapping
    {
      "properties": {
        "test_id": {
          "type": "long"
        }
      }
    }
    
    # OK
    # new_field追加(元々あったフィールドは残る)
    PUT test_index/_mapping
    {
      "properties": {
        "new_field": {
          "type": "text"
        }
      }
    }
    

    소감


    Elasticsearch 를 실제로 업무로 사용하고 있던 것은 약 1년 반 정도 전이므로, 기억이 희미해져서 수색이었습니다.
    여러가지 변화하고 있는 점도 있으므로, 공식 문서 다시 한번 은근하게 읽어 보겠습니다.Elasticsearch 는 공식 사이트에 꽤 상세한 설명이 실려 있으므로 추천합니다.
    htps //w w. 에 s c. 코/구이데/jp/에아 s 치c세아 rch/레후에렌세/쿤 t/이여 x. HTML

    좋은 웹페이지 즐겨찾기