Elasticsearch를 문서 저장소로 사용하고 문서와 메타데이터를 검색할 수 있는 반면, 진정한 힘은 Apache Lucene 검색 엔진 라이브러리에 구축된 전체 검색 기능에 쉽게 엑세스할 수 있는 데에서 나온다.

 

Elasitcsearch는 클러스터를 관리하고 데이터 색인 및 검색하기 위한 간단하고 일관된 REST API를 제공한다. 테스트를 위해 명령창에서 직접 또는 Kibana의 개발자 콘솔을 통해 요청을 쉽게 제출할 수 있다. 응용프로그램에서 다음 언어를 선택해서 Elasticsearch 클라이언트를 사용할 수 있다. : Java, JavaScript, Go, .NET, PHP, Perl, Python or Ruby.

 

데이터 검색

Elasitcsearch REST API는 구조화된 쿼리, 전체 텍스트 쿼리 및 이 둘을 결합한 복잡한 쿼리를 지원한다. 구조화된 쿼리는 SQL에서 구성할 수 있는 쿼리 유형과 유사하다. 예를 들어, 직원 색인의 성별 및 연령 필드를 검색하고 hire_date 필드를 기준으로 일치항목을 정렬할 수 있다. 전체 텍스트 쿼리는 쿼리 문자열과 일치하는 모든 문서를 찾아 관련성별로 정렬하여 반환한다.

 

개별 용어를 검색하는 것 외에도 구문 검색, 유사성 검색, 접두사 검색을 수행할 수 있으며, 자동 완성 제안을 받을 수 있다.

 

Elasticsearch는 고성능 지리 및 숫자 쿼리를 지원하는 최적화된 데이터 구조에서 비문자 데이터를 색인한다.

 

Elasticsearch의 포괄적인 JSON 스타일 쿼리 언어(Query DSL)를 사용하여 이러한 모든 검색 기능에 엑세스할 수 있다. 또한 SQL 스타일의 쿼리를 구성하여 Elasticsearch 내에서 데이터를 검색하고 집계할 수 있으며, JDBC 및 ODBC 드라이버는 광범위한 Thrid-party 애플리케이션이 SQL을 통해 Elasitcsearch와 상호 작용할 수 있도록 한다.

 

데이터 분석

Elasticsearch 집계를 통해 복합한 데이터 요약을 구축하고 주요 지표, 패턴 및 추세에 대한 통찰력을 얻을 수 있다. "건초더미 속의 바늘"만 찾는 것이 아니라, 집계를 통해 다음과 같은 질문에 답할 수 있다.

 

  • 건초더미에는 바늘이 몇 개 있는가?
  • 바늘의 평균길이는 얼마인가?
  • 제조사에 의해 분해된 바늘의 중간 길이는 얼마인가?
  • 지난 6개월 동안 건초더미에는 바늘이 몇 개씩 추가 되었는가?

또한 집계를 사용하여 다음과 같은 더 미묘한 질문에도 답할 수 있다.

 

  • 당신의 가장 인기 있는 바늘 제조사는 무엇인가?
  • 특이하거나 비정상적인 바늘 뭉치가 있는가?

집계는 검색에 사용되는 것과 동일한 데이터 구조를 사용하기 때문에 매우 빠르다. 이를 통해 실시간으로 데이터를 분석하고 시각화할 수 있다. 데이터가 변경될 때 보고서와 대시보드가 업데이트 되므로 최신정보를 기반으로 조치를 취할 수 있다.

 

게다가, 집계는 검색 요청과 함께 작동한다. 단일 요청으로 동일한 데이터에 대해 동시에 문서를 검색하고 결과를 필터링 하고 분석을 수행할 수 있다. 그리고 집계는 특정 검색의 맥락에서 계산되기 때문에 모든 크기의 70개 바늘을 표시하는 것이 아니라 사용자의 검색기준에 맞는 70개의 바늘(예: 모든 크기의 비스틱 자수바늘)의 개수를 표시하는 것이다.

+ Recent posts