OpenSearchDocumentStore

OpenSearchDocumentStore

OpenSearch에서 문서를 저장하고 검색하고 싶을 때 쓰는 OpenSearchDocumentStore를 소개할게요.

OpenSearch는 로그 분석, 실시간 애플리케이션 모니터링, 클릭스트림 분석 같은 사용 사례를 위한 완전 오픈소스 검색·분석 엔진이에요. 자세한 내용은 OpenSearch 문서를 참고하세요.

이 Document Store는 서로 다른 검색 옵션(dense vs. sparse)의 성능을 평가하고 싶을 때 특히 좋아요. Amazon OpenSearch Service와도 호환돼요.

OpenSearch는 벡터 유사도 비교와 근사 최근접 이웃 알고리즘을 지원해요.

초기화 (Initialization)

OpenSearch 인스턴스를 설치하고 실행해요.

Docker가 설정돼 있다면, Docker 이미지를 받아 실행하는 걸 권해요.

docker pull opensearchproject/opensearch:3.5.0
docker run \
    -p 9200:9200 \
    -p 9600:9600 \
    -e "discovery.type=single-node" \
    -e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" \
    -e "OPENSEARCH_INITIAL_ADMIN_PASSWORD=SecureHaystack*2026" \
    opensearchproject/opensearch:3.5.0

또는 OpenSearch 통합 GitHub에서 제공하는 docker-compose.yml을 이용해 OpenSearch를 띄운 Docker 컨테이너를 시작할 수도 있어요.

docker compose up

OpenSearch 인스턴스가 실행되고 나면, opensearch-haystack 통합을 설치해요.

pip install opensearch-haystack

그리고 OpenSearch 인스턴스에 연결된 OpenSearchDocumentStore 객체를 초기화하고 문서를 써 넣어요.

from haystack_integrations.document_stores.opensearch import OpenSearchDocumentStore
from haystack import Document

document_store = OpenSearchDocumentStore(
    hosts="http://localhost:9200",
    use_ssl=True,
    verify_certs=False,
    http_auth=("admin", "SecureHaystack*2026"),
)
document_store.write_documents(
    [Document(content="This is first"), Document(content="This is second")],
)
print(document_store.count_documents())

지원하는 Retriever

추가 자료 (Additional References)

🧑‍🍳 쿡북: PDF-Based Question Answering with Amazon Bedrock and Haystack

출처: 공식문서