OpenSearch 是一个可扩展、灵活且可扩展的开源软件套件,用于搜索、分析和可观测性应用程序,采用 Apache 2.0 许可证。本 Notebook 演示如何使用与OpenSearch是一个基于Apache Lucene的分布式搜索和分析引擎。
OpenSearch 数据库相关的功能。 要运行,您需要一个正在运行的 OpenSearch 实例:此处有简单的 Docker 安装说明。 similarity_search 默认执行近似 k-NN 搜索,它使用 lucene、nmslib、faiss 等几种算法之一,推荐用于大型数据集。为了执行暴力搜索,我们有其他搜索方法,称为脚本评分和 Painless 脚本。有关更多详细信息,请查看此处。安装
安装 Python 客户端。OpenAIEmbeddings,所以我们必须获取 OpenAI API 密钥。
使用近似 k-NN 进行相似性搜索
使用自定义参数通过Approximate k-NN 搜索进行 similarity_search
使用脚本评分进行相似性搜索
使用自定义参数通过Script Scoring 进行 similarity_search
使用 Painless 脚本进行相似性搜索
使用自定义参数通过Painless Scripting 进行 similarity_search
最大边际相关性搜索 (MMR)
如果您想查找一些相似的文档,但又希望获得多样化的结果,MMR 是您应该考虑的方法。最大边际相关性优化了对查询的相似性以及所选文档之间的多样性。使用预先存在的 OpenSearch 实例
也可以使用带有已存在向量的文档的预先存在的 OpenSearch 实例。使用 AOSS(Amazon OpenSearch 无服务器)
这是一个带有faiss 引擎和 efficient_filter 的 AOSS 示例。 我们需要安装几个 python 包。使用 AOS(Amazon OpenSearch 服务)
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。