文档API 参考📓 教程🧑‍🍳 菜谱🤝 集成💜 Discord🎨 Studio
文档

OpenSearchDocumentStore

一个用于在 OpenSearch 中存储和检索的 Document Store。

OpenSearch 是一个完全开源的搜索和分析引擎,可用于日志分析、实时应用程序监控和点击流分析等用例。有关更多信息,请参阅 OpenSearch 文档

如果您想评估不同检索选项(密集 vs. 稀疏)的性能,此 Document Store 非常有用。它与 Amazon OpenSearch Service 兼容。

OpenSearch 支持向量相似性比较和近似最近邻算法。

初始化

安装并运行 OpenSearch 实例。

如果您已设置 Docker,我们建议拉取 Docker 镜像并运行它。

docker pull opensearchproject/opensearch:2.11.0
docker run -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" opensearchproject/opensearch:2.11.0

或者,您可以访问 OpenSearch 集成 GitHub 并使用提供的文件启动一个运行 OpenSearch 的 Docker 容器。docker-compose.yml:

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="https://:9200", use_ssl=True,
verify_certs=False, http_auth=("admin", "admin"))
document_store.write_documents([
    Document(content="This is first"),
    Document(content="This is second")
    ])
print(document_store.count_documents())

支持的 Retrievers

OpenSearchBM25Retriever:一个基于关键词的 Retriever,用于从 Document Store 中检索与查询匹配的文档。

OpenSearchEmbeddingRetriever:比较查询和文档的嵌入,并检索与查询最相关的文档。

其他参考资料

🧑‍🍳 食谱:使用 Amazon Bedrock 和 Haystack 进行基于 PDF 的问答