elasticsearch에서 자주 사용하는curl 명령

10064 단어 elasticsearch

인용문


다음은 elasticsearch 학습의 기본 지식을 기록하는 것이다.주로 몇 가지 기본 개념과 간단한 기본 조작이다

기본 개념

  • Index: Elastic 데이터 관리의 최상위 단위는 Index(인덱스)라고 합니다. 각 Index(즉 데이터베이스)의 이름은 소문자여야 합니다..
  • Document: Index 내의 단일 레코드를 Document(문서)라고 합니다.여러 개의 Document가 Index를 구성합니다.Document는 JSON 형식으로 표현됩니다
  • type:document를 그룹으로 나눈다. 이런 그룹을 Type이라고 하는데 가상 논리 그룹으로 Document를 필터하는 데 쓰인다.(구체적인 이해에 편차가 있을 수 있음 댓글 수정 환영) 계획에 따라 Elastic 6.x 버전에서는 각 Index에 하나의 Type만 포함할 수 있습니다. 7.x 버전은 Type을 완전히 제거합니다..

  • 공통 작업 명령


    새 index


    요청 방식 PUT, 여기서 index_01은 데이터베이스 이름을 나타냅니다. (데이터베이스 이름은 소문자여야 합니다.)
    192.168.1.145:9200/index_01
    

    반환 구조:acknowledged:true 작업 성공 표시
    {
        "acknowledged": true,
        "shards_acknowledged": true,
        "index": "index_01"
    }
    

    index 삭제


    요청 방식 DELETE(새 index와 달리 요청 방식은 DELETE를 사용함)
    192.168.1.145:9200/index_01
    

    구조 복귀:
    {
        "acknowledged": true
    }
    

    신규 기록


    요청 방법: PUT index_01: index(관계형 데이터베이스에 해당하는 데이터베이스) type_01: 데이터가 type_01 유형 다음 1: ID를 1로 지정할 수 있음을 나타냅니다.
    192.168.1.145:9200/index_01/type_01/1
     :{
    	"name":" ",
    	"sex":" ",
    	"age":18
    }
    

    구조 복귀:
    {
        "_index": "index_01", 
        "_type": "type_01",
        "_id": "1",
        "_version": 1,
        "result": "created",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        "created": true
    }
    

    ID가 1로 추가된 데이터가 성공적으로 생성되었음을 나타냅니다.만약 추가할 때 ID를 지정하지 않으려면 요청 방식을 PUT로 주고 경로 아래의 마지막 1을 제거하면 된다.
    POST  192.168.1.145:9200/index_01/type_01
     :
    {
    	"name":" ",
    	"sex":" ",
    	"age":20
    }
    
    

    매개변수를 반환하려면 다음과 같이 하십시오.
    {
        "_index": "index_01",
        "_type": "type_01",
        "_id": "AWu2mg3fQX3MA7vSN8IN",   // elasticsearch ID
        "_version": 1,
        "result": "created",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        "created": true
    }
    

    요청 기록


    요청 방식 GET pretty=true 는 읽기 쉬운 포맷으로 반환됨을 나타냅니다.
    192.168.1.145:9200/index_01/type_01/1?pretty=true
    

    매개변수를 반환하려면 다음과 같이 하십시오.
    {
        "_index": "index_01",
        "_type": "type_01",
        "_id": "1",
        "_version": 1,
        "found": true,
        "_source": {
            "name": " ",
            "sex": " ",
            "age": 18
        }
    }
    

    만약 Id가 정확하지 않으면 데이터를 조회할 수 없을 때,found 필드는false입니다

    레코드 삭제


    요청 방식 DELETE
    192.168.1.145:9200/index_01/type_01/1
    

    매개변수를 반환하려면 다음과 같이 하십시오.
    {
        "found": true,
        "_index": "index_01",
        "_type": "type_01",
        "_id": "1",
        "_version": 2,
        "result": "deleted",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        }
    }
    

    삭제가 성공했음을 나타냅니다.

    레코드 업데이트


    요청 방식 PUT는 추가할 때와 요청 방식이 같습니다(elasticsearch에서 동일한 ID가 자동으로 업데이트되는 것을 감지합니다).
    192.168.1.145:9200/index_01/type_01/1
     :
    {
    	"name":" 01",
    	"sex":" ",
    	"age":19
    }
    

    매개변수를 반환하려면 다음과 같이 하십시오.
    {
        "_index": "index_01",
        "_type": "type_01",
        "_id": "1",
        "_version": 2,
        "result": "updated",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        "created": false
    }
    

    추가할 때 되돌아오는 매개 변수와 차이점을 볼 수 있습니다. "created": false, "result": "updated", "_version": 2, 수정할 때마다 1 추가

    모든 데이터 조회


    요청 방식 GET 직접 요청/Index/Type/_search, 모든 기록을 되돌려줍니다.
    192.168.1.145:9200/index_01/type_01/_search
    

    반환 결과:
    {
        "took": 4,
        "timed_out": false,
        "_shards": {
            "total": 5,
            "successful": 5,
            "skipped": 0,
            "failed": 0
        },
        "hits": {
            "total": 2,
            "max_score": 1,
            "hits": [
                {
                    "_index": "index_01",
                    "_type": "type_01",
                    "_id": "AWu2mg3fQX3MA7vSN8IN",
                    "_score": 1,
                    "_source": {
                        "name": " ",
                        "sex": " ",
                        "age": 20
                    }
                },
                {
                    "_index": "index_01",
                    "_type": "type_01",
                    "_id": "1",
                    "_score": 1,
                    "_source": {
                        "name": " 01",
                        "sex": " ",
                        "age": 19
                    }
                }
            ]
        }
    }
    

    그중took: 조회에 소모되는 시간(밀리초)timed_out: 시간 초과 여부hits: 명중한 기록, 안의 필드total: 되돌아오는 기록수, max_score: 최고 일치 정도,hits: 검색된 그룹을 되돌려줍니다.

    조건 찾기


    요청 방식 POST
    192.168.1.145:9200/index_01/type_01/_search
     :
    {
      "query": {
        "match": {
          "name": " "
        }
      }
    }
    

    match 조회 방법을 사용하여 지정한 조건name 필드가 "이사"인 모든 데이터 반환 인자를 찾습니다.
    {
        "took": 10,
        "timed_out": false,
        "_shards": {
            "total": 5,
            "successful": 5,
            "skipped": 0,
            "failed": 0
        },
        "hits": {
            "total": 1,
            "max_score": 0.51623213,
            "hits": [
                {
                    "_index": "index_01",
                    "_type": "type_01",
                    "_id": "AWu2mg3fQX3MA7vSN8IN",
                    "_score": 0.51623213,
                    "_source": {
                        "name": " ",
                        "sex": " ",
                        "age": 20
                    }
                }
            ]
        }
    }
    

    elasticsearch는 기본적으로 10개의 기록을 되돌려줍니다.size 필드를 통해 이 설정을 변경할 수 있습니다
    {
      "query": {
        "match": {
          "name": " "
        }
      },
      "size":1   // 
    }
    

    from 필드 (기본적으로 위치 0부터 조회) 를 통해 검색 시작 위치를 지정하여 첫 번째 항목부터 조회하고 데이터 (mysql에서limit (from,size) 를 조회할 수 있습니다
    {
      "query": {
        "match": {
          "name": " "
        }
      },
      "size":1,
      "from":1
    }
    

    논리 연산


    요청 방식 POST는 위치 0부터 일치하는 데이터 5개name에 "이사"또는 "장삼"을 포함하는 데이터를 조회합니다
    192.168.1.145:9200/index_01/type_01/_search
     :
    {
      "query": {
        "match": {
          "name": "   "
        }
      },
      "size":5,
      "from":0
    }
    

    구조 복귀
    {
        "took": 11,
        "timed_out": false,
        "_shards": {
            "total": 5,
            "successful": 5,
            "skipped": 0,
            "failed": 0
        },
        "hits": {
            "total": 2,
            "max_score": 0.51623213,
            "hits": [
                {
                    "_index": "index_01",
                    "_type": "type_01",
                    "_id": "AWu2mg3fQX3MA7vSN8IN",
                    "_score": 0.51623213,
                    "_source": {
                        "name": " ",
                        "sex": " ",
                        "age": 20
                    }
                },
                {
                    "_index": "index_01",
                    "_type": "type_01",
                    "_id": "1",
                    "_score": 0.5063205,
                    "_source": {
                        "name": " 01",
                        "sex": " ",
                        "age": 19
                    }
                }
            ]
        }
    }
    

    이런 조회 방식은 mysql의 or 조회에 해당합니다. 만약 and 조건 조회가 필요하다면bool 조회 방식을 사용해야 합니다.
    192.168.1.145:9200/index_01/type_01/_search
     :
    {
      "query": {
      	"bool":{
      		"must":[
    	  		 {"match": { "name": " " }},
    			 {"match": { "name": " "}}
      		]
      	}
      },
      "size":5,
      "from":0
    }
    

    반환 결과:
    {
        "took": 13,
        "timed_out": false,
        "_shards": {
            "total": 5,
            "successful": 5,
            "skipped": 0,
            "failed": 0
        },
        "hits": {
            "total": 1,
            "max_score": 0.51623213,
            "hits": [
                {
                    "_index": "index_01",
                    "_type": "type_01",
                    "_id": "AWu2mg3fQX3MA7vSN8IN",
                    "_score": 0.51623213,
                    "_source": {
                        "name": " ",
                        "sex": " ",
                        "age": 20
                    }
                }
            ]
        }
    }
    

    가장 높은 것은elasticsearch의 기본적인 조작 기능이다.

    좋은 웹페이지 즐겨찾기