Elasticsearch
Elasticsearch 是一个分布式的、RESTful的搜索和分析引擎,能够执行向量和词汇搜索。它建立在 Apache Lucene 库之上。
本笔记本展示了如何使用与 Elasticsearch
向量存储相关的功能。
设置
为了使用 Elasticsearch
向量搜索,您必须安装 langchain-elasticsearch
包。
%pip install -qU langchain-elasticsearch
凭证
有两种主要方式可以设置Elasticsearch实例以供使用:
- Elastic Cloud:Elastic Cloud是一个托管的Elasticsearch服务。注册免费试用。
要连接到不需要 登录凭证的Elasticsearch实例(以安全模式启动docker实例),请将Elasticsearch URL和索引名称与 嵌入对象一起传递给构造函数。
- 本地安装Elasticsearch:通过本地运行Elasticsearch开始使用。最简单的方法是使用官方的Elasticsearch Docker镜像。有关更多信息,请参见Elasticsearch Docker文档。
通过Docker运行Elasticsearch
示例:运行一个单节点的Elasticsearch实例,安全性禁用。这不推荐用于生产环境。
%docker run -p 9200:9200 -e "discovery.type=single-node" -e "xpack.security.enabled=false" -e "xpack.security.http.ssl.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:8.12.1
使用身份验证运行
对于生产环境,我们建议您启用安全性运行。要使用登录凭据连接,您可以使用参数 es_api_key
或 es_user
和 es_password
。
- OpenAI
- HuggingFace
- Fake Embedding
pip install -qU langchain-openai
import getpass
os.environ["OPENAI_API_KEY"] = getpass.getpass()
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
pip install -qU langchain-huggingface
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model="sentence-transformers/all-mpnet-base-v2")
pip install -qU langchain-core
from langchain_core.embeddings import FakeEmbeddings
embeddings = FakeEmbeddings(size=4096)
from langchain_elasticsearch import ElasticsearchStore
elastic_vector_search = ElasticsearchStore(
es_url="http://localhost:9200",
index_name="langchain_index",
embedding=embeddings,
es_user="elastic",
es_password="changeme",
)