elasticsearch (2) 데이터 조작 - 조회

14113 단어
문서 하나
ES 는 문 서 를 대상 으로 하고 JSON 을 문서 의 직렬 화 형식 으로 사용 합 니 다. ES 에 있어 문 서 는 루트 대상 이 서열 화 된 JSON 데 이 터 를 가리 키 며 유일한 ID 로 표시 하고 ES 에 저 장 됩 니 다.
  • 문서 메타 데이터
  • 세 개의 필수 메타 데이터 노드
    1、_index      문서 저장 소
    색인 은 관계 데이터베이스 에 있 는 데이터베이스 와 유사 합 니 다. 이것 은 우리 가 색인 과 관련 된 데 이 터 를 저장 하 는 곳 입 니 다.
    2、_type       문서 대표 대상 클래스
    관계 형 데이터베이스 에 있 는 표 와 유사 하 며, 모든 유형 은 자신의 맵 이나 구조 정의 가 있 습 니 다.
    3、_id           문서 의 유일한 표식
    와index 와type 조합 은 ES 에서 유일 하 게 문 서 를 표시 할 수 있 고 사용자 정의 할 수 있 으 며 ES 에서 자동 으로 생 성 할 수 있 습 니 다.
     
    색인
    1. 자신의 id 사용
    스스로 id 를 지정 해 야 합 니 다. 요청 방식 은 PUT 입 니 다.
    예시:
    청구 하 다. PUT  127.0.0.1:9200/{index}/{type}/{id}   (여기 서 index 는 test, type 은 test, id 는 3)
    인자: JSON 데이터
    응답:
    {
      "_index": "test",
      "_type": "test",
      "_id": "3",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }
    

    응답 중인 를 볼 수 있 습 니 다.id 자신 설정 과 일치
     
    2, 자체 증가 id 사용
    스스로 id 를 지정 할 필요 가 없습니다. 요청 방식 은 POST 입 니 다.
    예시
    청구 하 다. POST  127.0.0.1:9200/{index}/{type}    (여기 서 index 를 test 로, type 을 test 로)
    인자: JSON 데이터
    응답:
    {
      "_index": "test",
      "_type": "test",
      "_id": "WOTj8GYBuXRyDW5PpvRN",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }
    

    자체 증가 id 를 사용 하면 ES 는 문서 로 uid 를 무 작위 로 생 성 하 는 id 를 볼 수 있 습 니 다.
     
    문서 가 져 오기
    1. 문서 검색
    Elasticsearch 에서 문 서 를 가 져 오 려 면 같은 _index, _type, _id 을 사용 하지만 HTTP 방법 은 GET 으로 바 꿉 니 다.
    예시:
    GET  127.0.0.1:9200/test/test/4
    호응
    {
      "_index": "test",
      "_type": "test",
      "_id": "4",
      "_version": 2,
      "found": true,
      "_source": {
        "hello": "world",
        "author": "wuzhe"
      }
    }
    

      
    응답 중인source 는 우리 가 넣 은 문서 의 내용 입 니 다.
    found 는 문서 가 존재 함 을 나 타 냅 니 다.
    존재 하지 않 는 문 서 를 검색 하면 응답 합 니 다.
    {
      "_index": "test",
      "_type": "test",
      "_id": "5",
      "found": false
    }
    

    이때 found 가 false 가 됐어 요.
    2. 일부 문서 검색
    일반적으로 GET 요청 은 문서 의 전 부 를 되 돌려 주 고 _source 인자 에 저장 합 니 다.하지만 관심 있 는 필드 는 title 일 수도 있 습 니 다.개별 필드 에 인 자 를 사용 할 수 있 도록 요청 합 니 다 _source.여러 필드 에서 쉼표 로 구분 할 수 있 습 니 다:
    예시
    GET  127.0.0.1:9200/test/test/4?_source=hello
    호응
    {
      "_index": "test",
      "_type": "test",
      "_id": "4",
      "_version": 2,
      "found": true,
      "_source": {
        "hello": "world"
      }
    }
    

    이렇게 하면 hello 가 대응 하 는 내용 만 볼 수 있 습 니 다.
     
    3. 문서 가 존재 하 는 지 확인
    문서 가 존재 하 는 지 확인 하 는 것 만 하고 내용 에 전혀 관심 이 없다 면 HEAD 방법 으로 대체 할 수 있다 GET.
    HEAD  127.0.0.1:9200/test/test/4
    호응
    상태 코드 status 가 200 이면
    상태 코드 status 가 존재 하지 않 는 다 면 404 입 니 다.
     
    4. 여러 문서 검색
    여러 문 서 를 조회 하려 면 ES 에서 하 나 를 제공 합 니 다 mget API 는 여러 번 의 검색 을 합 쳐 검색 요청 네트워크 시간 을 피 할 수 있 습 니 다.mget  API 매개 변 수 는 하나의 docs 배열 로 배열 의 각 노드 는 하나의 문서 _index, _type, _id 메타 데 이 터 를 정의 합 니 다.만약 에 하나 또는 몇 개의 확 정 된 필드 만 검색 하고 싶다 면 _source 인 자 를 정의 할 수 있 습 니 다.
       :  POST 127.0.0.1:9200/_mget


    {
       "docs" : [
          {
             "_index" : "test",
             "_type" :  "test",
             "_id" :    3
          },
          {
             "_index" : "test",
             "_type" :  "test",
             "_id" :    4,
             "_source": "hello"
          },
          {
             "_index" : "test",
             "_type" :  "test",
             "_id" :    5
          }
       ]
    }

    호응
    {
      "docs": [
        {
          "_index": "test",
          "_type": "test",
          "_id": "3",
          "_version": 1,
          "found": true,
          "_source": {
            "first_name": "John",
            "last_name": "Smith",
            "age": 25,
            "about": "I love to go rock climbing",
            "interests": [
              "sports",
              "music"
            ]
          }
        },
        {
          "_index": "test",
          "_type": "test",
          "_id": "4",
          "_version": 2,
          "found": true,
          "_source": {
            "hello": "world"
          }
        },
        {
          "_index": "test",
          "_type": "test",
          "_id": "5",
          "found": false
        }
      ]
    }

     
                docs  ,           ,             。            get request     。
    , , 。



    검색 하고 싶 은 문서 가 같은 _index 에 있 거나 (심지어 같은 _type 에 있 으 면 URL 에서 기본 /_index 또는 /_index/_type 을 정의 할 수 있 습 니 다.
    당신 은 여전히 단독 요청 에서 이 값 을 사용 할 수 있 습 니 다:
    POST /test/test/_mget
    {
       "docs" : [
          { "_id" : 2 },
          { "_type" : "newtest", "_id" :   1 }
       ]
    }

    사실 모든 문서 가 같은 _index_type 를 가지 고 있다 면 간단 한 ids 배열 을 통 해 완전한 docs 배열 을 대체 할 수 있 습 니 다.
    POST /test/test/_mget
    {
       "ids" : [ "2", "1" ]
    }
     

     
      
     
    다음으로 전송:https://www.cnblogs.com/wuzhe1991/p/9921744.html

    좋은 웹페이지 즐겨찾기