Docker

[Docker] 막강한 검색 엔진 오픈소스 Meilisearch 구축 하기

IT-PAPA 2024. 9. 20. 06:00
728x90
반응형

Meilisearch는 빠르고 강력한 오픈소스 검색 엔진으로, 대량의 데이터를 효율적으로 색인하고 검색할 수 있는 기능을 제공합니다. 주요 특징은 다음과 같습니다:

  1. 뛰어난 검색 성능: 고도로 최적화된 검색 알고리즘을 사용하여 빠른 검색 성능을 제공합니다. 실시간으로 검색 결과를 반환하며, 정확도와 관련된 랭킹 점수를 기반으로 결과를 정렬합니다
  2. 다양한 언어 지원: 자연어 처리(NLP) 기술을 사용하여 여러 언어에 대한 검색을 지원합니다
  3. 실시간 업데이트: 데이터베이스나 파일 시스템에서 새로운 데이터가 추가되거나 수정될 때 자동으로 감지하고 인덱싱하여 최신 검색 결과를 제공합니다
  4. RESTful API: RESTful API를 통해 데이터 색인 및 검색 기능에 접근할 수 있어 다양한 프로그래밍 언어 및 프레임워크와의 통합이 용이합니다
  5. 확장성: 클러스터링과 복제 기능을 통해 확장성을 지원하며, 여러 인스턴스를 구성하여 검색 작업을 분산하고 높은 처리량과 가용성을 달성할 수 있습니다

Meilisearch는 Docker를 통해 쉽게 설치할 수 있으며, 간단한 설정으로 빠르게 시작할 수 있습니다. 예를 들어, Docker Compose를 사용하여 Meilisearch를 설정할 수 있습니다:

이 설정을 통해 Meilisearch 서버를 실행하고, API를 통해 데이터를 색인하고 검색할 수 있습니다

[Docker] 도커의 모든 것, 도커 추천 이미지!!! (tistory.com)

 

[Docker] 도커의 모든 것, 도커 추천 이미지!!!

필자는 이때까지 docker로 구축한 모든 목록을 이 블로그에 담았다. 앞으로도 이 페이지는 필자가 도커를 구축할 때마다 업데이트하려고 하니, 즐겨찾기 해두면 나쁘지 않을 거 같다. 유용하게 사

betwe.tistory.com

 

docker-compose.yml 파일

docker-compose.yml
version: '3.9'
services:
  meilisearch:
    image: 'getmeili/meilisearch:v1.10'
    volumes:
      - '/APP/meilisearch/meili_data:/meili_data'
    environment:
        - MEILI_ENV=development
    ports:
      - '7700:7700'

 

docker-compose 시작

docker-compose up -d

 

서비스 URL 접속

http://[서버 IP]:7700

서비스 URL 접속
서비스 URL 접속

 

샘플데이터 다운로드 (movies.json)

datasets/datasets at main · meilisearch/datasets (github.com)

 

datasets/datasets at main · meilisearch/datasets

Contribute to meilisearch/datasets development by creating an account on GitHub.

github.com

 

샘플데이터 서버에 업로드 (movies.json)

 

데이터 인덱스 생성

curl \
  -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \
  -H 'Content-Type: application/json' \
  --data-binary @movies.json

 

명령어 실행 시, 아래와 같은 결과

root@dev-ittools:~/docker/docker/DATABASE/meilisearch# curl \
  -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \
  -H 'Content-Type: application/json' \
  --data-binary @movies.json
{"taskUid":0,"indexUid":"movies","status":"enqueued","type":"documentAdditionOrUpdate","enqueuedAt":"2024-08-31T11:52:41.805061324Z"}
root@dev-ittools:~/docker/docker/DATABASE/meilisearch#

 

인덱스 성공 후, 데이터 조회 화면

인덱스 성공 후, 데이터 조회 화면
인덱스 성공 후, 데이터 조회 화면

 

검색어로 조회 시, 초강력 검색

검색어로 조회 시, 초강력 검색
검색어로 조회 시, 초강력 검색

 

1. 인덱스 생성

먼저, movies.json 파일을 사용하여 인덱스를 생성합니다. movies.json 파일은 현재 디렉토리에 있다고 가정합니다.

curl -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \
     -H 'Content-Type: application/json' \
     --data-binary @movies.json

이 명령어는 movies라는 이름의 인덱스를 생성하고, movies.json 파일의 데이터를 인덱싱합니다.

2. 인덱스 삭제

생성된 인덱스를 삭제하려면 다음 명령어를 사용합니다:

curl -X DELETE 'http://localhost:7700/indexes/movies'

이 명령어는 movies 인덱스를 삭제합니다.

3. 인덱스 조회
curl -X GET 'http://localhost:7700/indexes/movies'

이 명령어는 movies 인덱스의 정보를 조회합니다.

이 명령어들을 통해 Meilisearch에서 인덱스를 생성, 수정, 삭제, 조회할 수 있습니다.  

 

docker-comopse 중지

docker-compose down

 

참고 사이트

https://www.meilisearch.com/

 

Meilisearch

Meilisearch: A powerful, open-source search engine offering fast and relevant full-text searches. Enhance your search capabilities with features like facet search, semantic search, hybrid search, and geosearch. Optimize indexing with best practices and enj

www.meilisearch.com

 

728x90
반응형
LIST