Elasticsearch는 분산형 RESTful 검색 및 분석 엔진입니다. HTTP 웹 인터페이스와 스키마 프리 JSON 문서를 갖춘 분산형 멀티테넌트 지원 전문 검색 엔진을 제공합니다. 키워드 검색, 벡터 검색, 하이브리드 검색 및 복잡한 필터링을 지원합니다.
ElasticsearchRetriever는 Query DSL을 통해 모든 Elasticsearch 기능에 유연하게 접근할 수 있도록 하는 범용 래퍼입니다. 대부분의 사용 사례에서는 다른 클래스(ElasticsearchStore, ElasticsearchEmbeddings 등)로 충분하지만, 그렇지 않은 경우 ElasticsearchRetriever를 사용할 수 있습니다.
이 가이드는 Elasticsearch retriever를 시작하는 데 도움을 드립니다. 모든 ElasticsearchRetriever 기능 및 구성에 대한 자세한 문서는 API reference를 참조하세요.
Integration details
Setup
Elasticsearch 인스턴스를 설정하는 두 가지 주요 방법이 있습니다:- Elastic Cloud: Elastic Cloud는 관리형 Elasticsearch 서비스입니다. 무료 평가판에 가입하세요. 로그인 자격 증명이 필요하지 않은 Elasticsearch 인스턴스에 연결하려면(보안이 활성화된 상태로 docker 인스턴스 시작), Elasticsearch URL과 인덱스 이름을 embedding 객체와 함께 생성자에 전달하세요.
- Local Install Elasticsearch: 로컬에서 Elasticsearch를 실행하여 시작하세요. 가장 쉬운 방법은 공식 Elasticsearch Docker 이미지를 사용하는 것입니다. 자세한 내용은 Elasticsearch Docker documentation을 참조하세요.
Installation
이 retriever는langchain-elasticsearch 패키지에 있습니다. 데모 목적으로 텍스트 embeddings를 생성하기 위해 langchain-community도 설치합니다.
Configure
여기서는 Elasticsearch에 대한 연결을 정의합니다. 이 예제에서는 로컬에서 실행되는 인스턴스를 사용합니다. 또는 Elastic Cloud에서 계정을 만들고 무료 평가판을 시작할 수 있습니다.Define example data
Index data
일반적으로 사용자는 Elasticsearch 인덱스에 이미 데이터가 있을 때ElasticsearchRetriever를 사용합니다. 여기서는 몇 가지 예제 텍스트 문서를 인덱싱합니다. 예를 들어 ElasticsearchStore.from_documents를 사용하여 인덱스를 생성한 경우에도 괜찮습니다.
Instantiation
Vector search
이 예제에서는 가짜 embeddings를 사용한 밀집 벡터 검색입니다.BM25
전통적인 키워드 매칭입니다.Hybrid search
Reciprocal Rank Fusion (RRF)을 사용하여 결과 세트를 결합하는 벡터 검색과 BM25 검색의 조합입니다.Fuzzy matching
오타 허용이 있는 키워드 매칭입니다.Complex filtering
다양한 필드에 대한 필터의 조합입니다.Custom document mapper
Elasticsearch 결과(hit)를 LangChain 문서로 매핑하는 함수를 사용자 정의할 수 있습니다.Usage
위의 예제에 따라invoke를 사용하여 단일 쿼리를 실행합니다.
API reference
모든ElasticsearchRetriever 기능 및 구성에 대한 자세한 문서는 API reference를 참조하세요.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.