카테고리 없음

MeiliSearch 검색 엔진 기능 분석

뽀글뽀글 개발자 2024. 9. 4. 13:32

MeiliSearch 기능

MeiliSearch 공식문서의 Features를 해석하고, 하나씩 확인해보면서 정리했다.

  1. 50밀리 이내의 응답 속도
  2. 키보드 타이핑 중에도 결과를 실시간으로 업데이트 해준다.
    • 검색어를 입력하는 중에도 한글자 입력할 때마다 실시간으로 결과를 업데이트 해줄 수 있다. 
  3. 쿼리에 오타가 있어도 원하는 결과를 가져올 수 있다.
  4. 중국어, 일본어, 히브리어와 라틴 알파벳을 사용하는 언어에 대해 최적화된 지원을 한다.
    • 한국어에 대한 언급이 없어서 깃허브 레포지토리의 이슈를 뒤져보다가 한국어 지원이 추가된 PR을 찾았다.
    • 특화된 토큰화 목록이 정의된 파일을 보면 korean이 있는 것을 볼 수 있다.
  5. 검색 시 전체 문서를 반환한다. 
    • MeiliSearch는 스키마리스를 지원한다. 즉, MongoDB, JSON 같은 Document구조에서 일부분을 찾으면 해당 Document 전체를 반환한다.
    • 그럼 RDB는 어떻게 하느냐?  >> RDB는 직접적으로 지원하지 않고, DB 데이터를 MeiliSearch에서 지원하는 데이터구조(JSON)로 변환하는 ETL(Extract Transform Load)프로세스가 필요하다.
    • ETL을 제공하느냐? Elasticsearch의 경우 logstash, beats, elasticsearch-hadoop 등이 있고, Solr의 경우 Nifi, DIH가 있는 반면, MeiliSearch는 아직은 별도의 ETL Tools가 존재하지 않는다.
  6. 검색과 인덱싱 커스텀이 용이하다.
  7. 검색엔진의 관련성과 검색 결과의 순위를 커스텀할 수 있다.
  8. 검색 조건 필터링이 가능하고, faceted search가 가능하다.
    • faceted search: 검색 결과를 여러 범주(faceted)로 나누어, 각 범주 내에서 추가적인 필터링을 가능하게 하는 기능
    • ex) 쇼핑몰에서 "전자제품"을 검색하면, 검색 결과가 "브랜드", "가격", "평점" 등의 패싯으로 나뉘어 표시된다.
  9. 문서에서 검색 결과에 해당하는 부분을 강조할 수 있다.
  10. of, the 같은 관련없는 단어는 무시한다.
  11. 검색 결과로 더 많은 관련성을 포함하기 위해 동의어를 구성할 수 있다.
  12. RESTful API를 제공한다.
  13. 프론트엔드를 구현하지 않고도 검색 설정을 테스트할 수 있다.
    •  MeiliSearch는 대시보드를 제공하기 때문에 설치해서 해당 주소에 들어가면 대시보드를 확인할 수 있다.
  14. API 키 관리를 위해서 만료 날짜를 설정하고 항상 안전하게 인덱스 및 엔드포인트에 대한 접근을 제어해야한다.
  15. Multitenancy 환경에서 tenant token 발급을 통해 해당 tenant가 접근할 수 있는 데이터에 대한 검색 결과만 볼 수 있도록 해야한다. 
    • tenant: 사용자 그룹, 고객
    • Multitenancy : 하나의 소프트웨어가 여러 고객에게 서비스를 제공하는 아키텍처
  16. 단일 HTTP 요청으로 여러 인덱스에 대한 다중 검색 쿼리를 실행할 수 있다.
  17. 지리적 위치를 기준으로 결과 필터링 및 정렬이 가능하다.
  18. 검색 중단 없이 index 변경 사항을 DB에 반영할 수 있다.

 

MeiliSearch 맛보기

MeiliSearch가 어떤 느낌인지 보고싶다면 https://www.imdb.com/의 검색창에서 확인해 볼 수 있다.

 

 

MeiliSearch에서 인덱스란?

관련 설정이 있는 document 그룹으로 SQL의 Table과 MongoDB의 Collection과 유사하다.

인덱스는 uid로 구별하고, 아래 정보들을 포함한다.

  • PK
  • 검색 요청에 반영되는 사용자가 정의한 설정 정보
  • 1~N개의 documents

 

Reference

https://www.meilisearch.com/docs

 

Meilisearch Documentation

Documentation Discover our guides, examples, and APIs to build fast and relevant search experiences with Meilisearch.

www.meilisearch.com

 

https://github.com/meilisearch

 

Meilisearch

Powerful, fast, and an easy to use search engine. Meilisearch has 111 repositories available. Follow their code on GitHub.

github.com