Elasticsearch 초보자 강좌

Elasticsearch 초보자 강좌

2022-06-03 last update

6 minutes reading Elastic Search
이 수업에서는 Elasticsearch와 그 용도에 대해 알아보겠습니다.우리는 이와 관련된 각종 용어를 철저히 연구하고 사용하기 시작할 것이다.

Elasticsearch 데이터베이스


Elasticsearch는 가장 유행하는 NoSQL 데이터베이스 중 하나로 텍스트 기반 데이터를 저장하고 검색하는 데 사용됩니다.이것은 Lucene 인덱스 기술을 바탕으로 인덱스 기반 데이터를 밀리초 안에 검색 검색할 수 있도록 한다.
Elasticsearch website에 따라 다음과 같이 정의됩니다.

Elasticsearch is an open source distributed, RESTful search and analytics engine capable of solving a growing number of use cases.


이것은 Elasticsearch에 관한 고급 어휘들이다.우리는 여기서 이 개념들을 상세하게 이해합시다.
  • 분포식: Elasticsearch는 포함된 데이터를 여러 노드로 나누고 내부에서 주종 알고리즘을 사용한다
  • RESTful: Elasticsearch는 RESTAPI를 통해 데이터베이스 조회를 지원합니다.이것은 우리가 간단한 HTTP 호출을 사용할 수 있고 GET, POST, PUT, DELETE 등 HTTP 방법으로 데이터에 접근할 수 있다는 것을 의미한다.
  • 검색 및 분석 엔진: ES는 시스템에서 고도의 분석적인 조회를 실행할 수 있습니다. 이러한 조회는 집합 조회와 다양한 유형으로 구성할 수 있습니다. 예를 들어 구조화, 비구조화, 지리 조회입니다.
  • 가로 확장: 이런 scailing은 기존 집단에 더 많은 기계를 추가하는 것을 가리킨다.이것은 ES가 클러스터에서 더 많은 노드를 수용할 수 있고 시스템의 필요한 업그레이드에 정지 시간을 제공하지 않는다는 것을 의미한다.다음 그림을 보고 배율 개념을 알아보십시오.
  • 수직 및 수평 비계

    Elasticsearch 데이터베이스 시작


    Elasticsearch를 사용하려면 시스템에 설치해야 합니다.이를 위해 Install ElasticSearch on Ubuntu 를 참조하십시오.
    이 강좌 뒤에 설명된 예제를 보려면 활성 ElasticSearch가 설치되어 있는지 확인하십시오.

    Elasticsearch: 개념 및 구성 요소


    이 절에서 우리는 Elasticsearch의 핵심 부분과 개념을 이해할 것이다.이러한 개념을 이해하는 것은 ES의 작동 원리를 이해하는 데 매우 중요합니다.
  • 집단: 집단은 데이터를 저장하는 서버 기계(노드)의 집합이다.데이터는 복제할 수 있도록 여러 노드 간에 구분되며 ES 서버에서 SPoF(Single Point Fails)가 발생하지 않습니다.그룹의 기본 이름은elasticsearch입니다.클러스터의 각 노드는 URL과 클러스터 이름을 통해 클러스터에 연결되므로 고유성과 선명성을 유지하는 것이 중요합니다.
  • 노드: 노드 컴퓨터는 서버의 일부분으로 단기 컴퓨터라고 부른다.그것은 데이터를 저장하고 색인과 검색 기능, 그리고 집단의 다른 노드를 제공한다.
    수평 줌의 개념 때문에 우리는 실제로 ES 집단에 무한한 노드를 추가하여 더욱 큰 강도와 색인 기능을 부여할 수 있다.
  • 색인: 색인은 어떤 비슷한 특징을 가진 문서 집합이다.색인은 SQL 기반 환경에서 데이터베이스와 매우 유사합니다.
  • 유형: 같은 색인 간에 데이터를 구분하는 데 사용되는 유형입니다.예를 들어 고객 데이터베이스/인덱스는user,payment\u type 등 다양한 유형이 있을 수 있다.
    ES v6.0.0부터는 유형이 더 이상 권장되지 않습니다.읽기 here why this was done.
  • 문서: 문서는 데이터를 나타내는 최저 수준의 단위입니다.데이터를 포함하는 JSON 객체로 간주합니다.색인에서 가능한 한 많은 문서를 색인할 수 있습니다.
  • Elasticsearch의 검색 유형


    Elasticsearch는 실시간 검색 능력과 색인과 검색의 데이터 형식에 대한 유연성으로 유명하다.다양한 유형의 데이터에 대한 검색 방법을 연구하기 시작합니다.
  • 구조화된 검색: 이러한 유형의 검색은 날짜, 시간, 숫자와 같은 미리 정의된 형식을 가진 데이터에서 실행됩니다.미리 정의된 형식을 통해 날짜 범위 내의 값과 같은 일반적인 조작을 유연하게 실행할 수 있다.흥미로운 것은 텍스트 데이터도 구조화할 수 있다는 것이다.필드에 고정 수량의 값이 있을 때 이런 상황이 발생할 수 있습니다.예를 들어 데이터베이스 이름은 MySQL, MongoDB, Elasticsearch, Neo4J 등이 될 수 있습니다. 구조화된 검색에 대해 우리가 실행하는 검색의 답은 긍정 또는 부정입니다.
  • 전문 검색: 이런 유형의 검색은 두 가지 중요한 요소, 관련성과 분석에 달려 있다.관련성을 이용하여 우리는 결과 문서의 점수를 정의하여 일부 데이터와 조회의 일치 정도를 확정한다.이 점수는 ES에서 직접 제공합니다.분석이란 텍스트를 사양명세 표시로 분해하여 역방향 색인을 만드는 것을 말한다.
  • 다중 필드 검색: ES에 저장된 데이터의 분석 조회 수량이 끊임없이 증가함에 따라 우리는 보통 간단한 일치 조회에만 직면하지 않는다.여러 필드에서 조회를 실행할 수 있을 정도로 수요가 증가했고 데이터베이스 자체가 우리에게 평점 정렬을 거친 데이터 목록으로 되돌아왔다.이렇게 하면 데이터가 최종 사용자에게 더욱 효과적으로 나타날 수 있다.
  • Proimity 일치: 오늘 조회는 일부 텍스트 데이터에 다른 문자열이 포함되어 있는지 확인하는 것만은 아닙니다.이것은 데이터에 대한 평가를 하고 데이터가 일치하는 상하문과 일치하도록 데이터 간의 관계를 구축하는 데 관한 것이다.예:
  • 공이 존
  • 을 명중시켰다
  • 존 스트로크
  • 존이 새 공을 샀는데 공이 옌화원
  • 에 맞았다
    일치 질의는 스트로크를 검색할 때 세 개의 문서를 모두 찾습니다.근사 검색은 이 두 단어가 일치하기 때문에 같은 줄이나 한 단락에 나타나는 정도를 알려줄 수 있다.
  • 부분 일치: 우리는 일반적으로 부분 일치 조회를 실행해야 합니다.부분 매칭은 일부 매칭된 검색을 실행할 수 있도록 합니다.이를 시각화하기 위해 SQL 기반 질의와 유사한 내용을 살펴보겠습니다.
    SQL 질의: 부분 일치
    WHERE name LIKE "%john%"
    AND name LIKE "%red%"
    AND name LIKE "%garden%"
    어떤 경우, 폭력 기술로 간주될 수 있어도 일부 일치 조회만 실행할 수 있다.
  • Kibana와 통합


    분석 엔진에 대해 말하자면, 우리는 통상적으로 상업 지능(BI) 분야에서 분석 조회를 실행해야 한다.업무 분석가나 데이터 분석가와 관련될 때 사람들이 ES 집단의 데이터를 시각화하려고 할 때 프로그래밍 언어가 불공평하다는 것을 가설한다.이 문제는 Kibana 에 의해 해결됩니다.Kibana는 BI에 많은 장점을 제공했다. 사람들은 실제로 우수하고 맞춤형 계기판을 사용하여 데이터를 시각화하고 실제로 데이터를 볼 수 있다.우리들에게 그것의 약간의 장점을 좀 봅시다.

    대화형 차트


    Kibana의 핵심은 다음과 같은 대화식 차트입니다.

    Kibana는 케이크, 일광도, 직사각형 등 다양한 유형의 도표를 지원하는데 이 도표들은 ES의 완전한 집합 기능을 사용한다.

    매핑 지원


    Kibana는 또한 완전한 지리적 집합을 지원하여 우리가 데이터에 대해 지리적 매핑을 할 수 있도록 한다.이거 멋있지 않아요?!

    사전 구축 집합 및 필터


    미리 구축된 집합과 필터를 통해 Kibana 계기판에서 고도로 최적화된 조회를 진정으로 분해하고 삭제하며 실행할 수 있습니다.몇 번의 클릭만으로 집합 조회를 실행하고 상호작용 도표로 결과를 표시할 수 있습니다.

    간편한 배포 대시보드


    Kibana를 사용하면 대시보드를 보다 광범위한 사용자에게 쉽게 공유할 수 있으며, 대시보드만 모드의 도움으로 대시보드를 변경할 필요가 없습니다.우리는 계기판을 내부wiki나 웹 페이지에 쉽게 삽입할 수 있다.
    촬영한 특징 이미지Kibana Product page.

    Elasticsearch 사용


    인스턴스 세부 정보 및 클러스터 정보를 보려면 다음 명령을 실행합니다.

    이제 다음 명령을 사용하여 일부 데이터를 ES에 삽입할 수 있습니다.
    데이터 삽입
    curl \
    -X POST 'http://localhost:9200//hello/1' \
    -H 'Content-Type: application /json' \
    -d '{ "name" : "our" }'\
    다음은 이 명령을 통해 얻은 결과입니다.

    이제 데이터를 가져 보겠습니다.
    데이터 가져오기
    curl -X GET 'http://localhost:9200//hello/1'
    이 명령을 실행하면 다음과 같은 출력을 얻을 수 있습니다.

    결론


    이 수업에서 우리는 Elastic Search를 어떻게 사용하는지 알게 될 것이다. 이것은 우수한 분석 엔진이며 실시간 무료 텍스트 검색에 좋은 지원을 제공한다.