[Python] 도커(Docker)를 이용해 Meilisearch API 검색엔진 구현하기

하복치·2023년 7월 12일

PYTHON

목록 보기
5/5
post-thumbnail

👉 Meilisearch Documentation 보러가기

  • docker pull 명령어로 메일리서치 도커 이미지를 가져온다.
docker pull getmeili/meilisearch:v1.2

  • docker run 명령어로 컨테이너를 실행한다.
docker run -it --rm -p 7700:7700 -v %cd%/meili_data:/meili_data getmeili/meilisearch:v1.2

%cd% 는 현재 디렉토리 주소를 의미한다. linux 명령어의 경우 $(pwd) 사용한다.


  • docker run 명령어를 실행하면 메일리서치가 실행되고 있는 것을 확인할 수 있다.

  • 보안을 위해 master-key를 넣어 도커 컨테이너를 재실행한다.
docker run -it -p 7700:7700 -e MEILI_MASTER_KEY='MASTER_KEY' -v %cd%/meili_data:/meili_data getmeili/meilisearch:v1.2

이때 마스터키는 config.py 파일에 넣어 사용한다.


API KEY 확인하기

  • Postman에서 발급 받은 master-key를 확인한다.

Authoriztion에서 JWT Bearer를 선택하고 토큰 값에 Master Key을 넣은 후 /keys로 GET 요청한다.

  • return 값으로 Default Search/ Default Admin API Key를 확인할 수 있다.

💡파이썬 코드로 api key 확인하는 방법

import meilisearch

client = meilisearch.Client('http://localhost:7700', MASTER_KEY)
api_key = client.get_keys()
print(api_key)

💡터미널에서 api key 확인하는 방법(cURL 명령어 사용)

curl \
-X GET 'http://localhost:7700/keys' \
-H 'Authorization: Bearer MASTER_KEY'

카테고리(인덱스) 생성 및 검색 데이터 넣기

  • flask-meilisearch를 연결해준다.
import meilisearch
import json

client = meilisearch.Client('http://localhost:7700', API_KEY)
  • Index를 생성해준다.
client.create_index('test', {'primaryKey': 'id'})

인덱스는 카테고리를 의미한다. 각 카테고리별로 데이터를 넣어주어야 하고 primaryKey 지정은 필수요소이다. primaryKey에는 다른 유니크힌 값을 넣어도 되지만 id 사용을 권장한다.

  • 위에서 생성한 Index에서 넣어줄 데이터를 Json 형태로 넣어준다.
json_file = open('test.json')
index_json = json.load(json_file)

결과

  • 실행 전 admin API_KEY를 넣어준다.
  • 위에서 생성했던 Index와 Index에 넣어둔 데이터를 확인할 수 있다.
  • 검색어를 입력하면 관련 데이터만 나온다.

0개의 댓글