ElasticSearch 시작 소개
본고는 먼저 ElasticSearch의 색인과 문서의 개념을 소개하고 시리즈의 다른 글에서 더욱 진일보한 소개를 한다.
디렉토리:
bin/elasticsearch
하여 서비스를 시작하거나 패키지 관리자를 사용하여 시작을 설치할 수 있습니다.ES 기본 포트는 9200이며 ES를 로컬로 시작한 후
http://localhost:9200
GET 요청으로 ES의 기본 정보를 볼 수 있습니다.GET 'localhost:9200'
{
"name" : "hiTUe19",
"cluster_name" : "elasticsearch_finley",
"cluster_uuid" : "cfKnyFL1Rx6URmrmAuMBFw",
"version" : {
"number" : "5.1.2",
"build_hash" : "c8c4c16",
"build_date" : "2017-01-11T20:18:39.146Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
ElasticSearch는 3 계층 데이터 구조를 사용하여 데이터를 관리합니다.
index
: 인덱스는 가장 높은 데이터 구조로 독립적인 검색 인덱스와 분할 저장 정책을 정의할 수 있다type
: index마다 여러 개의 type을 가지고 서로 다른 유형의 문서를 저장할 수 있습니다3층 데이터 구조에 대응하여 우리는 세 개의 필드를 사용하여 문서를 유일하게 식별할 수 있다.
_index
: 문서가 있는 색인을 나타냅니다.색인 이름은 소문자로 시작해야 하며, 밑줄로 시작해서는 안 되고, 쉼표를 포함해서는 안 된다._type
: 문서가 있는 유형 집합을 나타냅니다.type 이름은 대소문자로 시작할 수 있으며, 밑줄로 시작할 수 없고, 쉼표를 포함할 수 없습니다._id
: type의 문서를 유일하게 표시하는 데 사용GET /_search
blog
아래 모든 문서 목록: GET /blog/_search
/blog/user
아래 모든 문서 목록: GET /blog/user/_search
문서 작성
IndexAPI
문서를 작성하는 데 사용할 수 있습니다.$ POST 'localhost:9200/blog/user/'
content-type: application/json
body:
{
"id": 1,
"nickname": "finley"
}
response:
{
"_index": "blog",
"_type": "user",
"_id": "AV5WoO0MdsHuOObNBTWU",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}
POST 요청으로 문서를 만들고 url에서 지정
_index
및_type
, 요청체에서 json 형식으로 문서 데이터를 제출합니다._index
또는 _type
에 ES가 없으면 자동으로 생성됩니다.위의 요청의 문서_id
필드는 ElasticSearch에서 작성되었으며 직접 지정할 수도 있습니다 _id
.POST localhost:9200/blog/user/2/
content-type: application/json
{
"id": 2,
"nickname": "easy"
}
response:
{
"_index": "blog",
"_type": "user",
"_id": "2",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}
문서 액세스
GET를 사용하여 문서에 액세스하려면
_index
, _type
및 _id
세 가지 매개변수로 문서를 고유하게 식별해야 합니다.GET localhost:9200/blog/user/2/
response:
{
"_index": "blog",
"_type": "user",
"_id": "2",
"_version": 2,
"found": true,
"_source": {
"id": 2,
"nickname": "easy"
}
}
문서 업데이트
문서를 수정한 후 색인을 업데이트하기 어렵기 때문에 ElasticSearch에서 문서를 수정하는 작업은 원래 문서를 삭제한 후 새 문서를 다시 추가하는 것입니다.
IndexAPI
를 사용하여 이미 존재하는 문서에 POST 요청을 보내면 문서가 업데이트됩니다.POST localhost:9200/blog/user/2/
content-type: application/json
{
"nickname": "easy",
"gender": "male"
}
response:
{
"_index": "blog",
"_type": "user",
"_id": "2",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": false
}
참고
_version
, created
, result
필드에 문서가 업데이트되었음을 표시합니다.GET 요청을 통해 업데이트된 문서를 보려면 다음과 같이 하십시오.GET localhost:9200/blog/user/2/
{
"_index": "blog",
"_type": "user",
"_id": "2",
"_version": 2,
"found": true,
"_source": {
"nickname": "easy2",
"gender": ”male“
}
}
이전 POST 요청에 의해 정의된 문서의 필드
_id
가 사라졌습니다.PUT 메서드를 통해 문서를 수정할 수도 있습니다.
PUT localhost:9200/blog/user/2/
content-type: application/json
{
"id": 2,
"nickname": "easy3"
}
{
"_index": "blog",
"_type": "user",
"_id": "2",
"_version": 3,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": false
}
GET 요청을 통해 문서가 수정되었는지 다시 확인합니다.
GET localhost:9200/blog/user/2/
{
"_index": "blog",
"_type": "user",
"_id": "2",
"_version": 3,
"found": true,
"_source": {
"id": 2
"nickname": "easy3",
}
}
문서 삭제
문서를 삭제하려면
DELETE
요청을 보내야 합니다.DELETE localhost:9200/blog/user/2/
response:
{
"found": true,
"_index": "blog",
"_type": "user",
"_id": "2",
"_version": 4,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.