Elasticsearch
키바 나와 함께하는 탄성 검색
수색…
소개
Kibana는 elasticsearch를위한 프런트 엔드 데이터 시각화 도구입니다. kibana 설치는 kibana 문서를 참조하십시오. localhost에서 kibana를 실행하려면 https : // localhost : 5601 로 이동하여 kibana console로 이동하십시오.
Kibana를 사용하여 클러스터 탐색
명령 구문의 형식은 다음과 같습니다.
<REST Verb> /<Index>/<Type>/<ID>
Kibana Console을 통해 elasticsearch cluster를 탐색하려면 다음 명령을 실행하십시오.
- 클러스터 상태 점검
GET /_cat/health?v
- 모든 색인을 나열하려면
GET /_cat/indices?v
- 자동차 이름으로 색인 만들기
PUT /car?pretty
- id 1을 사용하여 외부 유형의 car라는 이름의 문서를 색인화하려면
PUT /car/external/1?pretty
{
"name": "Tata Nexon"
}
위 쿼리의 응답은 다음과 같습니다.
{
"_index": "car",
"_type": "external",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}
- 위의 문서 검색은 다음을 사용하여 수행 할 수 있습니다.
GET /car/external/1?pretty
- 색인을 삭제하는 경우
DELETE /car?pretty
탄성 검색 데이터 수정
Elasticsearch는 거의 실시간으로 데이터 조작 및 데이터 검색 기능을 제공합니다. 이 예에서 우리는 업데이트, 삭제 및 일괄 처리 작업을 수행합니다.
- 동일한 문서 업데이트 중. / car / external / 1에 문서를 이미 색인화했다고 가정합니다. 그런 다음 데이터 인덱싱 명령을 실행하면 이전 문서가 바뀝니다.
PUT /car/external/1?pretty
{
"name": "Tata Nexa"
}
이름이 "Tata Nexon"인 id 1의 이전 자동차 문서가 새 이름 "Tata Nexa"로 업데이트됩니다.
- 명시적인 ID로 데이터 색인화하기
POST /car/external?pretty
{
"name": "Jane Doe"
}
Id를 사용하지 않고 문서를 색인하기 위해 PUT 동사 대신 POST 동사를 사용 합니다 . ID를 제공하지 않으면 elasticsearch가 임의의 ID를 생성 한 다음 문서를 색인화하는 데 사용합니다.
- Id에서 이전 문서를 부분적으로 업데이트 중입니다.
POST /car/external/1/_update?pretty
{
"doc": { "name": "Tata Nex" }
}
- 추가 정보로 문서 업데이트
POST /car/external/1/_update?pretty
{
"doc": { "name": "Tata Nexon", "price": 1000000 }
}
- 간단한 스크립트를 사용하여 문서를 업데이트합니다.
POST /car/external/1/_update?pretty
{
"script" : "ctx._source.price += 50000"
}
ctx._source는 업데이트하려고하는 현재 소스 문서를 참조합니다. 위의 스크립트는 동시에 업데이트 할 스크립트를 하나만 제공합니다.
- 문서 삭제
DELETE /car/external/1?pretty
참고 : 쿼리 API로 삭제를 사용하여 모든 문서를 삭제하는 것보다 전체 인덱스를 삭제하는 것이 더 효율적입니다.
일괄 처리
elasticsearch는 문서 업데이트 및 삭제 색인 생성 외에도 _bulk API를 사용하여 위 작업을 일괄 적으로 수행 할 수있는 기능을 제공합니다.
- _bulk API를 사용하여 여러 문서 업데이트하기
POST /car/external/_bulk?pretty
{"index":{"_id":"1"}}
{"name": "Tata Nexon" }
{"index":{"_id":"2"}}
{"name": "Tata Nano" }
- _bulk API를 사용하여 문서를 업데이트 및 삭제하는 방법
POST /car/external/_bulk?pretty
{"update":{"_id":"1"}}
{"doc": { "name": "Tata Nano" } }
{"delete":{"_id":"2"}}
작업이 실패하면 대량 API가 중지되지 않습니다. 모든 작업을 실행하고 마지막으로 모든 작업에 대한 보고서를 반환합니다.