Elasticsearch 시작, 기본 개념 및 작업

6109 단어

기본 개념


Node 및 Cluster


Elastic는 본질적으로 분포식 데이터베이스로 여러 대의 서버가 협동하여 작업할 수 있고 각 서버는 여러 개의 Elastic 실례를 실행할 수 있다.
하나의 Elastic 인스턴스를 하나의 노드(node)라고 합니다.하나의 노드가 하나의 집단 (cluster) 을 구성한다.
 

Index(데이터베이스에 해당하는 테이블)


Elastic은 모든 필드를 인덱스하고 처리된 후 인버터 색인(Inverted Index)을 기록합니다.데이터를 찾을 때 이 인덱스를 직접 찾습니다.
따라서 Elastic 데이터 관리의 최상위 단위를 Index(인덱스)라고 합니다.그것은 표의 동의어이다.각 Index의 이름은 소문자여야 합니다.
다음 명령은 현재 노드의 모든 Index를 볼 수 있습니다.
curl -X GET 'http://localhost:9200/_cat/indices?v'

ElasticSearch는 기본적으로 9200, 9300 포트를 열고 9200 포트는 http 액세스, 9300은 tcp 액세스, ElasticSearch는 9300 포트를 통해 통신합니다.
그냥 통과할 수 있어요.http://localhost:9200ElasticSearch에 접근하여 예시를 간소화하고 다음은curl방식으로 관련 조작을 보여 줍니다
 

Document(데이터베이스 테이블의 행)


Index의 단일 레코드를 Document(문서)라고 합니다.여러 개의 Document가 Index를 구성합니다.
Document는 JSON 형식으로 다음 예제를 나타냅니다.
같은 Index에 있는 Document는 같은 구조(scheme)를 요구하지 않지만 같은 구조를 유지하는 것이 검색 효율을 높이는 데 도움이 됩니다.
{
  "user": " ",
  "title": " ",
  "desc": " "
}

 

Type(분류, elasticsearch 7.0 이후 비활성화)


Document는 그룹을 나눌 수 있습니다. 예를 들어 weather 이 인덱스에서는 도시(베이징과 상하이)에 따라 그룹을 나눌 수도 있고 기후에 따라 그룹을 나눌 수도 있습니다(맑은 날과 비 오는 날).이 그룹을 Type이라고 합니다. 이 그룹은 가상 논리 그룹으로 Document를 필터링하는 데 사용됩니다.
서로 다른 유형은 비슷한 구조(schema)가 있어야 한다. 예를 들어 id 필드는 이 그룹에서 문자열일 수 없고 다른 그룹에서 수치일 수 없다.이것은 관계형 데이터베이스의 표와 구별된다.성질이 완전히 다른 데이터(예를 들어 productslogs는 하나의 인덱스 안에 있는 두 가지 유형이 아니라 두 개의 인덱스로 저장해야 한다.
다음 명령은 각 Index에 포함된 Type을 나열합니다.
 
curl 'localhost:9200/_mapping?pretty=true'

 

Mapping(데이터베이스의 표 구조와 유사)


현재 모든 맵핑 보기
curl 'localhost:9200/_mapping?pretty=true'

 
 
 

기본 작업


현재 노드의 모든 Index 보기curl -X GET 'http://localhost:9200/_cat/indices?v'
 
각 Index에 포함된 Type 나열
curl 'localhost:9200/_mapping?pretty=true'
 
새 Index, 다음 명령은 먼저 news라는 Index를 새로 만듭니다. 그 안에 newscontent라는 Type이 있습니다.news 필드 콘텐츠가 있습니다.콘텐츠 필드는 모두 중국어이고 형식은 텍스트 (text) 이기 때문에 중국어 분사기를 지정해야 합니다. 기본 영문 분사기를 사용할 수 없습니다.
index를 만들고 맵핑을 동시에 만듭니다.
curl -X PUT http://localhost:9200/news -H 'Content-Type:application/json' -d'
{
"mappings": {
"newscontent": {
"properties": {
"content": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
}
}
}
}'

  
Index 삭제
curl -X DELETE 'localhost:9200/news'
 
신규 데이터
curl -XPOST http://localhost:9200/news/newscontent/1 -H 'Content-Type:application/json' -d'
{"content":" "}
'
 
curl -XPOST http://localhost:9200/news/newscontent/2 -H 'Content-Type:application/json' -d'
{"content":" : "}
'
 
curl -XPOST http://localhost:9200/news/newscontent/3 -H 'Content-Type:application/json' -d'
{"content":" : 1 "}
'
 
curl -XPOST http://localhost:9200/news/newscontent/4 -H 'Content-Type:application/json' -d'
{"content":"   "}
'

  
ID 데이터 보기
curl 'localhost:9200/news/newscontent/1?pretty=true'
 
모든 레코드로 돌아가기
curl -XPOST http://localhost:9200/news/_search
 
검색 기록을 되돌려주고 하이라이트를 강조표시합니다.
curl -XPOST http://localhost:9200/news/_search  -H 'Content-Type:application/json' -d'
{
    "query" : { "match" : { "content" : " " }},
    "highlight" : {
        "pre_tags" : [""],
        "post_tags" : [""],
        "fields" : {
            "content" : {}
        }
    }
}
'

 
 
{
    "took": 14,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "hits": {
        "total": 2,
        "max_score": 2,
        "hits": [
            {
                "_index": "news",
                "_type": "newscontent",
                "_id": "4",
                "_score": 2,
                "_source": {
                    "content": "   "
                },
                "highlight": {
                    "content": [
                        "     "
                    ]
                }
            },
            {
                "_index": "news",
                "_type": "newscontent",
                "_id": "3",
                "_score": 2,
                "_source": {
                    "content": " : 1 "
                },
                "highlight": {
                    "content": [
                        " 1    "
                    ]
                }
            }
        ]
    }
}

  
 
 

참고 자료


전문 검색 엔진 Elasticsearch 입문 강좌


저자: 완일봉
http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
 

중국어 분사 elasticsearch-analysis-ik


https://github.com/medcl/elasticsearch-analysis-ik
 

CentOS7 Elasticsearch 설치


텐센트 클라우드 실험실
https://www.cnblogs.com/gezifeiyang/p/11007727.html
 

Elasticsearch: 권위 있는 안내서(공식 문서)


https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html


 
다음으로 전송:https://www.cnblogs.com/gezifeiyang/p/10998053.html

좋은 웹페이지 즐겨찾기