OpenSearch 是一个可扩展、灵活且可扩展的开源软件套件,基于 Apache 2.0 许可证,用于搜索、分析和可观测性应用。本笔记本展示如何使用与OpenSearch是基于Apache Lucene的分布式搜索和分析引擎。
OpenSearch 数据库相关的功能。
运行前,你应有一个正在运行的 OpenSearch 实例:参见此处了解简易 Docker 安装方法。
similarity_search 默认执行近似 k-NN 搜索,使用 lucene、nmslib、faiss 等多种算法,适用于大型数据集。若要进行暴力搜索,还有其他搜索方法,即 Script Scoring 和 Painless Scripting。
详情请参阅此处。
安装
安装 Python 客户端。OpenAIEmbeddings,因此需要获取 OpenAI API 密钥。
使用近似 k-NN 的 similarity_search
使用自定义参数的Approximate k-NN 搜索的 similarity_search
使用 script scoring 的 similarity_search
使用自定义参数的Script Scoring 的 similarity_search
使用 painless scripting 的 similarity_search
使用自定义参数的Painless Scripting 的 similarity_search
最大边际相关性搜索(MMR)
如果你想查找一些相似文档,同时也希望获得多样化的结果,MMR 是你应该考虑的方法。最大边际相关性在优化与查询的相似性的同时,也兼顾所选文档之间的多样性。使用已有的 OpenSearch 实例
也可以使用已有的 OpenSearch 实例,其中的文档已经包含向量。使用 AOSS(Amazon OpenSearch Service 无服务器版)
这是使用faiss 引擎和 efficient_filter 的 AOSS 示例。
我们需要安装几个 python 包。
使用 AOS(Amazon OpenSearch Service)
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

