1. Meilisearch란?
Rust 기반으로 제작된 API 기반 오픈소스 검색엔진이다.
https://www.meilisearch.com/
프랑스 파리에서 설립된 스타트업 Meili에서 제작한 검색엔진이며 현재까지 1,500만 달러의 투자금을 유치하며 지속적으로 개발 중이다.
2. Support Language
- 공백을 기준으로 단어를 나누는 언어 (ex. English) - Default
- 중국어
- 일본어
- 히브리어
- 태국어
- 한국어 (Default -> 형태소 분석 적용 진행 중 - 2022.11.01)
※ 한국어는 현재 공백을 기준으로 단어를 토큰화하여 검색
(ex . 오늘은 월요일 입니다 -> [오늘은] [월요일] [입니다] | 오늘은월요일입니다 -> [오늘은월요일입니다])
※ 형태소 분석 : 더 이상 분해될 수 없는 최소한의 의미 단위인 형태소를 자연어의 제약 조건 및 문법 규칙에 맞춰 분석
(ex. 오늘은월요일입니다 -> [오늘] / [은] / [월요일] / [입니다])
3. Features
- 검색 속도가 매우 빠르다. (일반적으로 검색 결과 속도가 50ms 미만의 성능을 보여줌)
- 입력과 동시에 검색 (Prefix-search를 기반으로 검색 데이터에 타자를 칠 때마다 결과 값이 반환)
- 오타 허용 (자체 Setting에서 추가 설정 가능)
- 검색된 전체 문서 반환 (검색에 반환될 문서 수 설정 가능)
- 사용자 정의를 통한 검색 고도화
- RESTful API
- Search Preview (Front-end 구현 없이 자체 API에서 Document 추가 및 검색 가능)
▼ 사용자 정의를 통한 검색 고도화에는 다음과 같은 기능이 있다.
- Custom ranking : Ranking-rule을 지정하여 원하는 결괏값을 우선 시 반환되도록 설정할 수 있다
- Stop words : 불용어 처리를 API 내에서 적용시킬 수 있다.
- Highlighting : 매칭된 검색 결과를 하이라이트 표시하여 시각화 (Matching 되는 속성 값을 설정 가능)
- Synonyms : 동의어 또는 유의어를 직접 지정할 수 있다.
※ 불용어 처리 : 형태소 분석을 마친 결과 값 중 검색 용어로 사용되지 않는 단어, 관사, 전치사, 조사, 접속사 등이 있다.
(ex. 은 / 는 / 이 / 가 / 에 / 으로 ~ 등)
4. Basic
4-1) 설치 (cURL / Homebrew)
cURL Install & Launch :
# Install meilisearch
$ curl -L https://install.meilisearch.com | sh
# Launch Meilisearch
$ ./meilisearch
Homebrew Install & Launch :
# Update brew and install Meilisearch
$ brew update && brew install meilisearch
# Launch Meilisearch
$ meilisearch
설치를 마친 후 실행한다면 다음과 같은 결과가 Terminal에서 출력된다면 정상적으로 실행이 된 것이다.
Result :
브라우저에서 위의 포트를 통하여 접속할 수 있고 다음과 같은 화면을 볼 수 있다.
환경 변수 설정을 통하여 HTTP의 주소 및 포트, Master-key, db-path 등의 설정이 가능하다.
# Set HTTP address & port
$ export MEILI_HTTP_ADDR='address:port'
# Set Master Key
$ export MEILI_MASTER_KEY='masterkey'
# Set DB Path
$ export MEILI_DB_PATH='path'
그 외의 Index 및 Document 설정/추가/삭제/수정 등의 기능들은 홈페이지 Reference에서 알아볼 수 있다.
https://docs.meilisearch.com/reference/api/overview.html