Elasticsearch 버전: 5.4
Elasticsearch 빠른 시작 파트 1: Elasticsearch 시작하기
Elasticsearch 빠른 시작 파트 2: Elasticsearch 및 Kibana 설치
Elasticsearch 빠른 시작 파트 3: Elasticsearch 색인 및 문서 작업
Elasticsearch 빠른 시작 4부: Elasticsearch 문서 쿼리
Elasticsearch는 확장성이 뛰어난 오픈 소스 전체 텍스트 검색 및 분석 엔진입니다. 대규모 데이터를 거의 실시간으로 신속하게 저장, 검색, 분석할 수 있습니다. 일반적으로 복잡한 검색 기능과 요구 사항이 있는 애플리케이션에 대한 강력한 지원을 제공하기 위해 기본 엔진/기술로 사용됩니다.
Elasticsearch 는 다음 장소에서 사용할 수 있습니다:
고객이 판매 중인 제품을 검색할 수 있는 온라인 상점 웹사이트가 있다고 가정해 보겠습니다. 이 경우 Elasticsearch 를 사용하여 전체 제품 카탈로그와 재고를 저장하고 검색을 제공할 뿐만 아니라 자동으로 몇 가지 제안을 제공할 수 있습니다.
로그나 거래 데이터를 수집하고 분석 및 마이닝을 통해 추세, 통계, 요약 또는 이상 징후를 찾고 싶다고 가정해 보세요. 이 경우 LogStash(Elasticsearch/Logstash/Kibana스택의 일부)를 사용하여 데이터를 수집, 집계 및 구문 분석한 다음 이 데이터를 LogStash를 통해 Elasticsearch 에 전달할 수 있습니다. Elasticsearch 에 데이터가 있으면 관심 있는 정보를 검색하고 집계할 수 있습니다.
가격 알림 플랫폼을 운영하고 가격에 정통한 고객에게 "나는 특정 전자 기기를 구매하는 데 관심이 있습니다. 다음 달 내에 가격이 $x보다 낮은 판매자가 있습니다."와 같은 규칙을 지정하도록 한다고 가정해 보겠습니다. , 받고 싶습니다. "알려주세요". 이 경우 판매자의 가격을 Elasticsearch에 제출하고 역검색(필터)을 사용하여 가격 변경 사항을 고객 쿼리와 일치시키고 일치하는 항목이 발견되면 고객에게 알릴 수 있습니다.
대량(수백만 또는 수십억 개의 레코드)의 데이터에서 임시 문제를 신속하게 조사, 분석, 시각화 및 찾아내려는 분석(비즈니스 인텔리전스) 요구와 욕구가 있다고 가정해 보겠습니다. 이 경우 Elasticsearch 를 사용하여 데이터를 저장한 다음 Kibana (Elasticsearch 스택의 일부)를 사용하여 사용자 정의 대시보드를 구축하여 중요한 데이터를 시각화할 수 있습니다. 또한 Elasticsearch 집계 기능을 사용하여 데이터를 기반으로 복잡한 비즈니스 인텔리전스 쿼리를 수행할 수 있습니다.
이 튜토리얼의 나머지 부분에서는 Elasticsearch의 시작 및 실행 프로세스를 안내하고 데이터 인덱싱, 검색 및 수정과 같은 몇 가지 기본 작업을 보여 드리겠습니다. 이 튜토리얼을 마치면 Elasticsearch가 무엇인지, 어떻게 작동하는지 더 깊이 이해하게 될 것입니다. 이를 사용하여 정교한 검색 애플리케이션을 구축하고 데이터에서 유용한 정보를 발견할 수 있는 영감을 얻으시길 바랍니다.
기본 개념(Basic Concepts)
Elasticsearch의 핵심인 몇 가지 개념이 있습니다. 처음부터 이러한 개념을 이해하면 나중에 학습하는 데 큰 도움이 됩니다.
Near Real Time(NRT)
Elasticsearch 은 거의 실시간 검색 플랫폼입니다. 이는 문서가 색인화되는 시점부터 검색이 가능해지는 시점까지 약간의 지연(보통 1초)만 있음을 의미합니다.
클러스터(Cluster)
클러스터는 모든 데이터를 저장하기 위해 통합되고 모든 노드에서 인덱싱 및 검색 작업을 수행할 수 있는 하나 이상의 노드(서버)의 모음입니다. 클러스터는 고유한 이름으로 식별되며 기본값은 "elasticsearch"입니다. 노드는 하나의 클러스터에만 속할 수 있고 클러스터 이름에 따라 클러스터에 참여할 수 있기 때문입니다. 그래서 이름이 중요해요.
다른 환경에서 동일한 클러스터 이름을 사용하지 마십시오. 그렇지 않으면 잘못된 클러스터가 추가될 수 있습니다. 예를 들어 개발, 스테이징 및 프로덕션 환경에서 각각 클러스터 이름 logging-dev , 로깅-단계 및 로깅-prod 을 사용할 수 있습니다.
노드가 하나만 있는 클러스터는 유효하고 완벽합니다. 각각 고유한 클러스터 이름을 갖는 여러 개의 독립 클러스터를 가질 수도 있습니다.
노드(Node)
노드는 클러스터의 일부로 데이터를 저장하고 클러스터의 인덱싱 및 검색에 참여하는 단일 서버입니다. 클러스터와 마찬가지로 노드도 고유한 이름으로 구별됩니다. 기본 이름은 서버가 시작될 때 노드에 설정되는 임의의 UUID(Universally Unique IDentifier)입니다. 기본값을 사용하지 않으려면 노드 이름을 사용자 정의할 수도 있습니다. 이름은 클러스터의 각 서버에 해당하는 노드를 식별하는 데 도움이 되므로 관리자에게 매우 중요합니다.
노드는 클러스터 이름을 구성하여 지정된 클러스터에 참여할 수 있습니다. 기본적으로 노드는 elasticsearch 라는 클러스터에 참여합니다. 즉, 네트워크에서 많은 수의 노드를 시작하고 모두 서로 통신할 수 있으면 자동으로 elasticsearch 클러스터라는 클러스터에 추가됩니다. .
색인(Index)
색인 은 특정 유사한 특성을 가진 문서의 모음입니다. 예를 들어 고객 데이터 색인, 제품 카탈로그 색인, 주문 데이터 색인 등이 있습니다. 인덱스는 문서를 인덱싱, 검색, 업데이트 및 삭제할 때 사용되는 이름(모두 소문자여야 함)으로 식별됩니다. 단일 클러스터 내에서 필요한 만큼 많은 인덱스를 정의할 수 있습니다.
Type
인덱스는 하나 이상의 유형을 정의할 수 있습니다. 유형은 사용자가 이해하고 싶은 인덱스의 논리적 범주/파티션입니다. 일반적으로 유형은 공통 필드 집합이 있는 문서에 대해 정의됩니다. 예를 들어, 블로깅 플랫폼은 모든 데이터를 단일 인덱스에 저장할 수 있습니다. 이 인덱스에서는 사용자 데이터 유형, 블로그 데이터 유형 및 댓글 데이터 유형을 정의할 수 있습니다.
문서
문서는 인덱스를 생성할 수 있는 기본 단위입니다. 예를 들어 문서를 사용하여 고객에 대한 데이터를 저장하거나, 단일 제품에 대한 데이터를 저장하거나, 단일 주문에 대한 데이터를 저장합니다. 문서는 JSON을 사용하여 표현됩니다. 하나의 인덱스/유형에 많은 수의 문서를 저장할 수 있습니다. 문서가 본질적으로 인덱스에 저장되지만 실제로는 인덱스의 유형에 인덱스/할당된다는 점은 주목할 가치가 있습니다.
샤드 및 복제본
인덱스는 단일 노드의 하드 디스크 용량을 초과할 수 있는 막대한 양의 데이터를 저장할 수 있습니다. 예를 들어, 인덱스는 10억 개의 문서를 저장하고 1TB의 하드 디스크 공간을 차지합니다. 단일 노드의 하드 디스크는 그렇게 많은 양의 데이터를 저장하기에는 충분하지 않을 수 있습니다. 서버의 검색 요청 처리 속도.
이 문제를 해결하기 위해 elasticsearch에서는 인덱스를 세분화하는 샤딩 기능을 제공합니다. 인덱스를 생성할 때 필요한 샤드 수를 간단히 정의할 수 있습니다. 각 샤드 자체에는 인덱스의 모든 기능이 있으며 클러스터의 모든 노드에 저장될 수 있습니다.
샤딩은 두 가지 주요 이유로 중요합니다.
콘텐츠 볼륨을 수평으로 분할/확장할 수 있습니다.
여러 노드의 샤딩에 작업을 병렬로 분산하여 성능을 향상시키거나 처리량.
샤드 배포 메커니즘과 해당 문서가 검색 요청으로 다시 집계되는 방식은 Elasticsearch에서 완전히 관리되며 사용자에게 투명합니다.
언제든지 장애가 발생할 수 있는 네트워크/클라우드 환경에서는 샤딩이 매우 유용할 수 있으며 샤드/노드가 오프라인 상태가 되거나 사라지는 것을 방지하기 위해 장애 조치 메커니즘을 적극 권장합니다. 이를 위해 elasticsearch 를 사용하면 소위 복제된 샤드 또는 단순히 복제본이라고 하는 인덱스 샤드의 복사본을 하나 이상 만들 수 있습니다.
복제본은 두 가지 주요 이유로 중요합니다.
샤드/노드에 장애가 발생할 경우 고가용성을 제공합니다. 따라서 복사본이 복사된 원본/기본 샤드와 동일한 노드에 복제본을 할당할 수 없다는 점에 유의하는 것이 중요합니다.
모든 복제본에 대해 검색을 병렬로 수행할 수 있으므로 검색 볼륨/처리량을 확장할 수 있습니다.
요약하자면, 각 인덱스는 여러 개의 샤드로 나눌 수 있습니다. 각 인덱스는 0번(복사본 없음) 또는 여러 번 복제될 수도 있습니다. 복제되면 각 인덱스에는 기본 샤드(복제된 원래 샤드)와 보조 샤드(기본 샤드의 복사본)가 있습니다. 인덱스 생성 시 인덱스별로 샤드와 레플리카의 개수를 정의할 수 있습니다. 인덱스를 생성한 후 언제든지 복제본 수를 동적으로 변경할 수 있지만 나중에 샤드 수를 변경할 수는 없습니다.
기본적으로 각 인덱스에는 5개의 기본 샤드와 1개의 복제본 샤드가 할당됩니다. 즉, 클러스터에 2개의 노드가 있는 경우 인덱스에는 5개의 기본 샤드와 5개의 복제본 샤드가 있어 총 10개의 샤드가 있습니다.
각 Elasticsearch 샤드는 Lucene 인덱스에 최대 2,147,483,519개(= Integer.MAX_VALUE - 128)개의 문서가 있을 수 있습니다. 샤드 크기를 모니터링하세요. .
Summary
1. 검색에 관계형 데이터베이스를 사용하면 어떨까요? 검색을 구현하기 위해 데이터베이스를 사용하기 때문에 성능이 매우 저하되고 단어 분할 검색을 수행할 수 없습니다.
2. 전체 텍스트 검색, 역색인, Lucene이란 무엇인가요? 이전 분들이 이미 요약하셨으니 [단계별 전체 텍스트 검색 교육]을 참고하세요. Apache Lucene 예비 탐색
3. Elasticsearch의 특징
은 클러스터로 분산되어 대용량 데이터를 처리할 수 있습니다. 거의 실시간으로
사용자를 위해 즉시 사용이 매우 간단합니다. 데이터의 양이 크지 않으면 작업이 크게 복잡해지지 않습니다.
관계형 데이터베이스에는 없는 기능(예: 전체 텍스트 검색, 동의어 처리, 관련성 순위 지정, 복잡한 데이터 분석, 준실수)이 있습니다. -대량 데이터의 시간 처리; Lucene 기반으로 복잡성을 숨기고 간단하고 사용하기 쉬운 RESTful API 인터페이스와 Java API 인터페이스를 제공합니다.
4 Elasticsearch의 핵심 개념
클러스터: 클러스터에는 여러 노드가 포함되어 있으며 각 노드가 속하는 클러스터는 구성에 따라 결정됩니다(기본값은 elasticsearch).
노드: 클러스터의 노드, 노드는 자동으로 "elasticsearch"라는 클러스터에 연결됩니다. 기본. Elasticsearch 서비스는 노드입니다. 예를 들어 컴퓨터가 두 개의 es 서비스를 시작하면 두 개의 노드가 있게 됩니다.
인덱스: mysql 데이터베이스에 해당하는 인덱스로 비슷한 구조의 문서 데이터가 많이 포함되어 있습니다.
유형: 유형. mysql 테이블과 동일하며 인덱스의 논리적 데이터 분류입니다.
Document: Document는 MySQL 테이블의 레코드 행에 해당하며 ES에서 가장 작은 데이터 단위입니다.
샤드: 단일 머신은 많은 양의 데이터를 저장할 수 없습니다. ES는 인덱스의 데이터를 여러 샤드로 분할하여 여러 서버에 저장할 수 있습니다.
replica: 복제본, 다운타임 및 샤드 손실을 방지하기 위해 최소 고가용성 구성은 서버 2대입니다.
위 내용은 엘라스틱서치란 무엇인가요? Elasticsearch는 어디에 사용될 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

C# 및 .NET은 웹, 데스크탑 및 모바일 개발에 적합합니다. 1) 웹 개발에서 ASP.NETCORE는 크로스 플랫폼 개발을 지원합니다. 2) 데스크탑 개발은 WPF 및 Winforms를 사용하여 다양한 요구에 적합합니다. 3) 모바일 개발은 Xamarin을 통한 크로스 플랫폼 응용 프로그램을 실현합니다.

C#.NET 생태계는 개발자가 응용 프로그램을 효율적으로 구축 할 수 있도록 풍부한 프레임 워크 및 라이브러리를 제공합니다. 1.asp.netCore는 고성능 웹 애플리케이션을 구축하는 데 사용되며 2.entityFrameworkCore는 데이터베이스 작업에 사용됩니다. 이러한 도구의 사용 및 모범 사례를 이해함으로써 개발자는 응용 프로그램의 품질과 성능을 향상시킬 수 있습니다.

C# .NET 앱을 Azure 또는 AWS에 배포하는 방법은 무엇입니까? 답은 Azureappservice와 Awelasticbeanstalk를 사용하는 것입니다. 1. Azure에서 Azureappservice 및 AzurePipelines를 사용하여 배포를 자동화하십시오. 2. AWS에서 Amazon Elasticbeanstalk 및 Awslambda를 사용하여 배포 및 서버리스 컴퓨팅을 구현하십시오.

C#과 .NET의 조합은 개발자에게 강력한 프로그래밍 환경을 제공합니다. 1) C#은 다형성 및 비동기 프로그래밍을 지원합니다. 2) .net은 크로스 플랫폼 기능과 동시 처리 메커니즘을 제공하여 데스크탑, 웹 및 모바일 애플리케이션 개발에 널리 사용됩니다.

.NETFramework는 소프트웨어 프레임 워크이며 C#은 프로그래밍 언어입니다. 1..netframework는 데스크탑, 웹 및 모바일 애플리케이션 개발을 지원하는 라이브러리 및 서비스를 제공합니다. 2.C#은 .NETFramework 용으로 설계되었으며 최신 프로그래밍 기능을 지원합니다. 3..NetFramework는 CLR을 통해 코드 실행을 관리하고 C# 코드는 IL로 컴파일되어 CLR에 의해 실행됩니다. 4. .NETFramework를 사용하여 응용 프로그램을 신속하게 개발하면 C#은 LINQ와 같은 고급 기능을 제공합니다. 5. 일반적인 오류에는 유형 변환 및 비동기 프로그래밍 교착 상태가 포함됩니다. 디버깅을 위해서는 VisualStudio 도구가 필요합니다.

C#은 Microsoft에서 개발 한 최신 객체 지향 프로그래밍 언어이며 .NET은 Microsoft가 제공하는 개발 프레임 워크입니다. C#은 C의 성능과 Java의 단순성을 결합하며 다양한 응용 프로그램을 구축하는 데 적합합니다. .NET 프레임 워크는 여러 언어를 지원하고 쓰레기 수집 메커니즘을 제공하며 메모리 관리를 단순화합니다.

C# 및 .NET 런타임은 개발자가 효율적이고 강력하며 크로스 플랫폼 개발 기능을 강화하기 위해 긴밀히 협력합니다. 1) C#은 .NET 프레임 워크와 완벽하게 통합하도록 설계된 유형 안전 및 객체 지향 프로그래밍 언어입니다. 2) .NET 런타임은 C# 코드 실행을 관리하고, 쓰레기 수집, 유형 안전 및 기타 서비스를 제공하며, 효율적이고 크로스 플랫폼 운영을 보장합니다.

C# .NET 개발을 시작하려면 다음과 같은 것이 필요합니다. 1. C#의 기본 지식과 .NET 프레임 워크의 핵심 개념을 이해하십시오. 2. 변수, 데이터 유형, 제어 구조, 기능 및 클래스의 기본 개념을 마스터하십시오. 3. LINQ 및 비동기 프로그래밍과 같은 C#의 고급 기능을 배우십시오. 4. 일반적인 오류에 대한 디버깅 기술 및 성능 최적화 방법에 익숙해 지십시오. 이러한 단계를 통해 C#.NET의 세계를 점차적으로 침투하고 효율적인 응용 프로그램을 작성할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
