[python] FastAPI와 Elasticsearch의 연동
FastAPI는 빠르고 현대적인 웹 애플리케이션을 빌드하기 위한 웹 프레임워크입니다. Elasticsearch는 고성능의 분산 검색 및 분석 엔진으로, 대량의 데이터를 빠르게 색인하고 검색할 수 있습니다. 이 블로그 포스트에서는 FastAPI와 Elasticsearch를 연동하여 데이터를 색인하고 검색하는 방법에 대해 알아보겠습니다.
Elasticsearch 설정
먼저 Elasticsearch를 설치하고 실행해야 합니다. 이후 인덱스를 생성하고 데이터를 색인합니다.
from elasticsearch import Elasticsearch
# Elasticsearch 연결
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
# 인덱스 생성
es.indices.create(index='blog_posts', ignore=400)
# 데이터 색인
doc = {
'author': 'John Doe',
'text': 'Lorem ipsum dolor sit amet',
'timestamp': datetime.now()
}
es.index(index='blog_posts', id=1, body=doc)
FastAPI와 연동
FastAPI에서는 Elasticsearch 클라이언트를 사용하여 Elasticsearch와 통신합니다.
from fastapi import FastAPI
from elasticsearch import Elasticsearch
app = FastAPI()
# Elasticsearch 연결
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
@app.get("/search/{query}")
def search(query: str):
res = es.search(index="blog_posts", body={"query": {"match": {'text': query}}})
return res['hits']['hits']
마치며
이제 FastAPI와 Elasticsearch를 연동하여 데이터를 색인하고 검색하는 방법에 대해 알아보았습니다. 이를 통해 빠르고 효율적인 웹 애플리케이션을 개발할 수 있습니다.
더 많은 세부 내용은 FastAPI 공식 문서와 Elasticsearch 공식 문서를 참고하세요.
참고 문헌: