ElasticSearch - 다중 색인 검색 및 대량 작업
19212 단어 elasticsearch
multi_get
또는 mget
API를 사용하여 이러한 검색 요청을 하나의 요청에 넣으면 문서 요청보다 모든 문서를 더 빨리 검색할 수 있습니다.mget
API는 docs
수조를 매개 변수로 하고 각 요소는 문서를 검색하는 메타데이터를 포함한다_index
,_type
,_id
.특정 필드를 하나 이상 검색하려면 _source
파라미터를 통해 이 필드의 이름을 지정할 수 있습니다curl -XGET 'http://localhost:9200/_mget' -d '
{
"docs":[
{
"_index":"csdn",
"_type":"blog",
"_id":"1"
},
{
"_index":"grade3",
"_type":"class2",
"_id":"1",
"_source":["name","age"]
}
]
}
'
필드 설명:
_index
(또는 같은 _type
에 있다면, URL에서 기본 /_index
또는 /_index/_type
을 지정할 수 있지만, 이 값을 덮어쓸 수 있습니다.curl -XGET 'http://localhost:9200/csdn/blog/_mget' -d '
{
"docs":[
{
"_id":"1"
},
{
"_index":"grade3",
"_type":"class2",
"_id":"1",
"_source":["name","age"]
}
]
}
'
만약 당신이 원하는 데이터가 모두 동일
_index
과 동일_type
에 있다면, 당신은 단지 하나ids
의 데이터를 전달하면 됩니다.curl -XGET 'http://localhost:9200/csdn/blog/_mget' -d '
{
"ids":["7","8"]
}
'
다음과 같은 결과가 반환됩니다.
{
"docs" : [
{
"_index" : "csdn",
"_type" : "blog",
"_id" : "7",
"_version" : 6,
"found" : true,
"_source" : {
"name" : "python developer",
"addr" : " ",
"count" : 2,
"favorite" : [
"music",
"football"
]
}
},
{
"_index" : "csdn",
"_type" : "blog",
"_id" : "8",
"found" : false
}
]
}
참고 ID가 8인 문서는 찾을 수 없지만 ID가 7인 문서는 찾을 수 없습니다.데이터에서 알 수 있듯이 ID가 8인 데이터를 찾을 수 없으면 {"found":false}로 돌아갑니다.그리고 데이터의 순서는 요청할 때 목록의 순서와 일치합니다.
대량 작업 - bulk
mget
API가 여러 문서를 한 번에 가져올 수 있는 방식과 마찬가지로 bulk
, create
, index
및 update
요청을 한 번에 여러 번 수행할 수 있습니다.로그 이벤트 같은 데이터 양을 인덱스해야 한다면, 수백 번, 수천 번 줄을 서서 인덱스할 수 있습니다.bulk 기본 형식은 다음과 같습니다.
{action:{metadata}}
{request body}
{action:{metadata}}
{request body}
...
이 형식은 유효한 JSON 문서 흐름과 유사하며 줄 바꿈 () 을 통해 연결됩니다.참고 사항:
delete
은 다음과 같습니다.{"update":{"_index":"csdn","_type":"blog","_id":"1","_retry_on_conflict":5}}
{"title":" "}
위 코드는 제목 업데이트 작업입니다. 주의해야 할 것은
update
요청이 없습니다delete
. 즉 완전한 request body
요청은 다음과 같습니다.{"delete":{"_index":"csdn","_type":"blog","_id":"1"}}
모든 요청을 하나로 통합하여 완전한
delete
요청은 다음과 같다.curl -XPOST 'http://localhost:9200/_bulk' -d '
{"delete":{"_index":"csdn","_type":"blog","_id":"1"}}
{"create":{"_index":"csdn","_type":"blog","_id":"1"}}
{"title":" "}
{"index":{"_index":"csdn","_type":"blog"}}
{"title":"index "}
{"update":{"_index":"csdn","_type":"blog","_id":"1","_retry_on_conflict":5}}
{"doc":{"title":" 1"}}
'
다음 결과가 반환됩니다.
{
"took" : 46,
"errors" : false,
"items" : [
{
"delete" : {
"found" : true,
"_index" : "csdn",
"_type" : "blog",
"_id" : "1",
"_version" : 15,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"status" : 200
}
},
{
"create" : {
"_index" : "csdn",
"_type" : "blog",
"_id" : "1",
"_version" : 16,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"created" : true,
"status" : 201
}
},
{
"index" : {
"_index" : "csdn",
"_type" : "blog",
"_id" : "AV8zdG7wEgThxiHZqqaM",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"created" : true,
"status" : 201
}
},
{
"update" : {
"_index" : "csdn",
"_type" : "blog",
"_id" : "1",
"_version" : 17,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"status" : 200
}
}
]
}
되돌아오는 데이터를 보면 하나
_bulk
를 되돌려 모든 요청이 성공적으로 끝났음을 나타낸다. 만약에 관련 요청이 완성되지 않았거나 오류가 발생하면{"errors" : false}
, 해당하는 요청에 오류 내역이 나타날 것이다.delete 요청 뒤에는 요청체가 있을 수 없고,delete 요청 뒤에는 요청체가 있을 수 없고,delete 요청 뒤에는 요청체가 있을 수 없습니다.마지막 줄도 줄을 바꾸고, 마지막 줄도 줄을 바꾸고, 마지막 줄도 줄을 바꾸어야 한다.중요한 일을 세 번 말하다
아마도 당신이 색인한 데이터가 같은
{"errors" : true}
과 index
중에서 모든 문서에 같은 메타데이터를 지정하는 것은 낭비일 것입니다.type
API도 _bulk
API와 유사한 기능을 가지고 있으며, URL에서 기본값_mget
또는 /_index
을 지정할 수 있지만, 이 값을 덮어쓸 수 있습니다.curl -XPOST 'http://localhost:9200/csdn/blog/_bulk' -d '
{"delete":{"_id":"1"}}
{"create":{"_id":"1"}}
{"title":" "}
{"index":{"_index":"grade3","_type":"class2"}}
{"title":"index "}
'
경량 검색의 다중 색인 다중 유형
이전 블로그 ElasticSearch - 프로필에서
/_index/_type
소개했습니다. 우리는 URL을 통해 간단한 검색을 하는 방법을 알았지만 같은 색인 아래에서 같은 유형으로만 검색할 수 있습니다. 그러나 많은 경우 여러 색인과 여러 유형에서 검색할 수 있기를 바랍니다. 우리는 URL을 통해 특수한 색인과 유형을 지정할 수 있습니다.
인덱스에서 검색curl -XGET 'http://localhost:9200/csdn,grade3/_search'
curl -XGET 'http://localhost:9200/c*,g*/_search'
curl -XGET 'http://localhost:9200/csdn,grade3/blog,class2/_search'
curl -XGET 'http://localhost:9200/_all/_search'
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.