[python] Flask와 Elasticsearch를 이용한 검색 기능 구현 방법
본 문서에서는 Python의 Flask 웹 프레임워크와 Elasticsearch를 이용하여 검색 기능을 구현하는 방법을 소개하고자 한다.
목차
Flask 앱 설정
Flask 웹 애플리케이션을 구성하려면 먼저 필요한 패키지를 설치해야 한다. 이를 위해 간단한 가상 환경을 만들고 Flask 및 관련 패키지를 설치하는 것이 좋다.
$ python -m venv myenv
$ source myenv/bin/activate
(myenv) $ pip install Flask elasticsearch
또한, Flask 앱을 생성하고 기본 라우트를 설정하여 기본적인 웹 페이지가 표시되는지 확인해야 한다.
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World'
if __name__ == '__main__':
app.run(debug=True)
위와 같이 작성한 후 python app.py
로 앱을 실행하고 브라우저에서 http://127.0.0.1:5000
로 접속하여 결과를 확인한다.
Elasticsearch 연동
Elasticsearch를 설치하고 실행한 후, Python에서 Elasticsearch 클라이언트를 사용하여 연동한다. elasticsearch 패키지를 사용하여 Elasticsearch와 연동한다.
from elasticsearch import Elasticsearch
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
검색 기능 구현
검색 기능은 사용자가 입력한 검색어에 대해 Elasticsearch에서 데이터를 검색하고 결과를 반환하는 과정을 포함한다. 아래는 Flask에서 사용자로부터 검색어를 입력받아 Elasticsearch에 검색을 요청하고 결과를 반환하는 코드이다.
from flask import request
@app.route('/search')
def search():
query = request.args.get('q')
res = es.search(index='my_index', body={'query': {'match': {'content': query}}})
# 검색 결과를 가공하여 반환하는 코드
return process_search_results(res)
위 코드에서 my_index
는 Elasticsearch에 색인화된 데이터의 인덱스 이름으로 변경되어야 한다.
이와 같이 Flask와 Elasticsearch를 이용하여 간단한 검색 기능을 구현할 수 있다.
위 문서는 Python의 Flask와 Elasticsearch를 이용하여 검색 기능을 구현하는 방법에 대해 알아보았다.