What is App Search?

App Search는 검색이 필요한 어떠한 웹 사이트 혹은 애플리케이션에 쉽게 검색 기능을 도입할 수 있는 검색 애플리케이션이다.

Elastic의 3가지 솔루션인 Enterprise Search, Observabillity, Security 중 Enterprise Search에서 제공하는 애플리케이션이다.

App Search의 특징

App Search는 아래와 같은 특징과 기능이 있다.

  • 검색 쿼리문 작성 없이 바로 검색 서비스 도입 가능
  • 개발자 친화적인 API 제공
  • 실시간 분석 화면 제공
  • 다양한 개발 언어 클라이언트 제공
  • 바로 사용 가능한 UI 프로젝트 파일생성
  • UI기반의 연관성 튜닝

App Search Architecture


App Search는 Elastic의 기본 구성인 Elasticsearch + Kibana 에 결합되어 REST API 기반으로 작동한다. App Searh는 API를 처리해주는 Engine을 생성하여 사용한다. Engine을 통해 데이터(인덱스)를 관리하고, 연관성 튜닝을 하고, 실시간 분석 등의 모든 작업을 처리한다.

라이센스

Elastic 을 사용하는 데에 가장 많은 질문들 중 하나가 라이센스에 관한 것이다. App Search의 기본적인 기능들은 basic(무료) 라이센스로도 가능하다. 다만 다음과 같은 기능들은 Platinum(유료) 이상의 라이센스가 필요하다.

  • Adaptive Relevance: Curations (Beta)
  • 웹 크롤러 HTTP 프록시 인증
  • 웹 크롤러 HTTP 인증
  • 웹 크롤러 PDF 추출

위의 기능 외에 전반적인 검색 기능들은 모두 무료 라이센스로 사용 가능하다.

App Search 설치 및 사용법

App Search를 사용하기 위한 요구사항은 다음과 같다.

  • Elasticsearch 3 node
  • Kibana
  • Enterprise Search node

App Search는 Elasticsearch 클러스터와 클러스터링 된 Enterprise Search 노드에서 실행된다. Enterprise Search 노드 클러스터링에 대한 방법은 추가로 글로 작성하겠다.

Enterprise Search 노드가 클러스터링된다면 키바나에서 Search 메뉴를 클릭 시 사진과 같이 Enterprise Search 메뉴가 추가 된다. App Search 를 클릭하면

위와 같이 App Search 페이지 UI로 진입하게 된다. 이 페이지에서 Engine을 생성 및 관리 할 수 있고, 로깅 세팅, 인증 키 관리, 유저 및 권한 관리(RBAC)을 할 수 있다.

Engine


Create engine 버튼을 눌러 Engine 을 생성할 수 있다.


Engine은 App Search managed, Elasticsearch index-based 두 종류가 있다. 두 종류의 Engine 모두 데이터는 엘라스틱서치 인덱스에 저장되고, Engine은 해당 인덱스를 바라보는 alias를 사용하여 인덱스를 인식한다.

App Search managed Engine

App Search managed Engine은 쉽게 도큐먼트를 추가할 수 있고 App Search가 매핑 및 세팅또한 잡아주는 편한 방식의 Engine이라고 할 수 있다. 엔진 생성 시 자동적으로 Elasticsearch에 .ent 로 시작하는 히든 인덱스가 생성된다.

생성법

Create Engine을 클릭한 뒤 App Search managed docs 를 누르고 Continue 를 클릭한다.

그러면 위와 같은 화면이 나오는데, Engine name 은 생성할 Engine의 이름을 정하는 것이고, Engine language 에서는 엔진에서 어떤 언어의 데이터를 사용할 것인지를 선택하게 된다.
한국어를 선택할 수 있으며, Elastic 에서는 영어가 아닌 언어들의 더 나은 최적화를 위해 Engine을 생성하기 전에 Elasticsearch에 ICU analysis plugin 을 설치해놓기를 권장하고 있다. ICU plugin을 설치해놓았다면 Engine 생성시에 사용되는 analyzer 들이 자동적으로 ICU로 설정된다.

App Search managed Engine의 장단점은 다음과 같다.

장점

  • 인덱스를 자동적으로 생성해준다.
  • 데이터의 setting 및 mapping을 App Search가 자동으로 설정해준다.
  • 목적에 맞게 스키마를 변경 가능하다.
  • 다양한 언어를 지원한다.
  • UI에서 json 형식의 데이터를 추가할 수 있다.
  • 웹 크롤러를 사용하여 데이터를 추가할 수 있다.

단점

  • 인덱스에 추가적인 analyzer 설정이 불가능하다. (특정 언어를 위한 최적화 불가능)



Elasticsearch index-based Engine

기존 Elasticsearch index에 더 익숙하고 App search managed Engine의 한계를 해결하기 위해 8.2.0 버전부터 Elasticsearch index-based Engine이 추가되었다.
사용자들은 기존에 생성해 놓은 Elasticsearch inedx를 사용해 Engine을 만들 수 있으며, 더 다양한 설정들이 가능해졌다.

생성법

1. Elasticsearch index setting and mapping 설정
다만 App Search 에서 Elasticsearch index 를 사용하기 위해서는 추가적인 index setting 및 mapping 설정이 필요하다. App Search가 제공하는 연관성 튜닝, 오타보정, 어간 분석, 검색어 자동 완성 등의 기능들을 사용하려면 text 필드들에 App Search가 인식할 수 있는 analyzer로 이루어진 서브필드들을 추가해야한다.
공식적인 setting 과 mapping 설정법은 링크 참조.

profile
반갑습니다

0개의 댓글