elasticsearch (2) 데이터 조작 - 조회
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.