[파이썬] Flask에서의 ElasticSearch 사용

Flask는 파이썬 웹 프레임워크로, 간단하고 유연한 웹 애플리케이션을 개발할 수 있는 도구입니다. ElasticSearch는 대규모 데이터 검색 및 분석 엔진으로, Flask와 함께 사용하면 강력한 웹 애플리케이션을 구축할 수 있습니다. 이번 포스트에서는 Flask에서 ElasticSearch를 사용하는 방법에 대해 알아보겠습니다.

ElasticSearch를 Flask에 통합하기

먼저, Flask 애플리케이션에 ElasticSearch를 통합하는 방법은 다음과 같습니다.

  1. Flask의 flask-elasticsearch 의존성을 설치합니다.
  2. ElasticSearch 연결 설정과 Flask 애플리케이션 초기화를 수행합니다.
  3. ElasticSearch 인덱스를 생성하고 데이터를 색인합니다.
  4. 검색 기능을 구현합니다.
from flask import Flask
from flask_elasticsearch import FlaskElasticsearch

app = Flask(__name__)
app.config['ELASTICSEARCH_HOST'] = 'localhost'
app.config['ELASTICSEARCH_PORT'] = 9200
es = FlaskElasticsearch(app)

# ElasticSearch 인덱스 생성
@app.route('/create_index')
def create_index():
    es.indices.create(index='my_index', ignore=400)
    return "Index created successfully"

# 데이터 색인
@app.route('/index_data')
def index_data():
    data = {
        'title': 'Flask Elasticsearch Integration',
        'content': 'Using Elasticsearch with Flask',
    }
    res = es.index(index='my_index', doc_type='my_doc', body=data)
    return "Data indexed successfully"

# 검색 기능 구현
@app.route('/search')
def search():
    query = 'Flask Elasticsearch'
    res = es.search(index='my_index', doc_type='my_doc', q=query)
    hits = res['hits']['hits']
    return f"Search results: {hits}"

if __name__ == '__main__':
    app.run()

위 예제에서는 Flask 웹 애플리케이션에 flask-elasticsearch 의존성을 추가하고, ElasticSearch 호스트 및 포트 설정을 app.config에 지정합니다. 그 후 FlaskElasticsearch 객체를 생성하여 ElasticSearch 연결을 설정합니다.

인덱스 생성 및 데이터 색인에는 es.indices.create() 메서드와 es.index() 메서드를 사용합니다. 검색은 es.search() 메서드를 사용하여 수행하며, 검색어와 일치하는 결과를 반환합니다.

마치며

이번 포스트에서는 Flask에서 ElasticSearch를 사용하는 방법에 대해 알아보았습니다. Flask와 ElasticSearch의 통합을 통해 강력한 검색 기능을 가진 웹 애플리케이션을 개발할 수 있습니다. Flask와 ElasticSearch를 함께 사용하여 데이터 검색 및 분석에 용이한 웹 애플리케이션을 만들어보세요.

추가 정보 및 자세한 사용법은 Flask-Elasticsearch documentation을 참조해주세요.