交互式示例

elasticsearch-labs 存储库包含交互式和可执行的 Python 笔记本、示例应用程序和用于测试 Elasticsearch 的资源,使用 Python 客户端。这些示例主要侧重于向量搜索、混合搜索和生成式 AI用例,但您还会找到基本操作的示例,例如创建索引映射和执行词法搜索。

搜索笔记本

如果您是 Elasticsearch 的新手,搜索 文件夹是一个不错的起点。此文件夹包含许多笔记本,这些笔记本演示了 Elasticsearch 的基础知识,例如索引向量、运行词法、语义和 *混合* 搜索等。

以下笔记本可用

  1. 快速入门

  2. 关键字、查询、过滤

  3. 混合搜索

  4. 使用 ELSER 进行语义搜索

  5. 多语言语义搜索

  6. 查询规则

  7. 同义词 API 快速入门

以下是您将在每个笔记本中学习的内容的简要概述。

快速入门

00-quick-start.ipynb 笔记本中,您将学习如何

  • 将 Elasticsearch Python 客户端用于各种操作。

  • 使用 dense_vector 字段为示例数据集创建和定义索引。

  • 使用 Sentence Transformers 将书籍标题转换为嵌入,并将它们索引到 Elasticsearch 中。

  • 执行 k 最近邻 (knn) 语义搜索。

  • 将传统的基于文本的搜索与语义搜索集成,以实现混合搜索系统。

  • 使用倒数排名融合 (RRF) 智能地组合来自不同检索系统的搜索结果。

关键字、查询、过滤

01-keyword-querying-filtering.ipynb 笔记本中,您将学习如何

  • 使用 查询和过滤上下文 来搜索和过滤 Elasticsearch 中的文档。

  • 使用 matchmulti-match 查询执行全文搜索。

  • 根据 textnumberdateboolean 值查询和过滤文档。

  • 使用 multi-match 查询运行多字段搜索。

  • multi-match 查询中优先考虑特定字段以获得定制结果。

混合搜索

02-hybrid-search.ipynb 笔记本中,您将学习如何

  • 将传统的基于文本的搜索结果与语义搜索结果相结合,以实现混合搜索系统。

  • 使用 Sentence Transformer 模型将示例数据集中的字段转换为嵌入,并将它们索引到 Elasticsearch 中。

  • 使用 RRF API 组合 match 查询和 kNN 语义搜索的结果。

  • 逐步介绍一个超级简单的玩具示例,演示 RRF 排名如何工作。

使用 ELSER 进行语义搜索

03-ELSER.ipynb 笔记本中,您将学习如何

  • 使用 Elastic Learned Sparse Encoder (ELSER) 进行文本扩展驱动的语义搜索,开箱即用 - 无需训练、微调或嵌入生成。

  • 在您的 Elastic 环境中下载和部署 ELSER 模型。

  • 创建一个名为 search-movies 的 Elasticsearch 索引,其中包含特定的映射,并索引电影描述数据集。

  • 创建一个包含用于 ELSER 模型执行的推理处理器的摄取管道。

  • 使用 ELSER 管道将数据从 search-movies 重新索引到另一个索引 elser-movies 中以进行文本扩展。

  • 通过检查模型添加到文档中的附加术语来观察运行文档的结果,这些术语增强了可搜索性。

  • elser-movies 索引执行简单的关键字搜索,以评估 ELSER 文本扩展的影响。

  • 使用 text_expansion 查询执行 ELSER 驱动的语义搜索。

多语言语义搜索

04-multilingual.ipynb 笔记本中,您将学习如何

  • 使用多语言嵌入模型进行跨语言语义搜索。

  • 使用 Sentence Transformer 模型将示例数据集中的字段转换为嵌入,并将它们索引到 Elasticsearch 中。

  • 将过滤与 kNN 语义搜索一起使用。

  • 逐步介绍一个超级简单的玩具示例,演示多语言搜索如何在不同语言之间以及非英语语言中工作。

查询规则

05-query-rules.ipynb 笔记本中,您将学习如何

  • 使用查询规则管理 API 根据上下文查询创建和编辑促销规则。

  • 通过在查询 DSL 中使用 rule_query 来应用这些查询规则。

同义词 API 快速入门

06-synonyms-api.ipynb 笔记本中,您将学习如何

  • 使用同义词管理 API 创建同义词集以增强您的搜索召回率。

  • 配置索引以使用搜索时同义词。

  • 实时更新同义词。

  • 运行由同义词增强的查询。

其他笔记本

  • 生成式 AI。演示 Elasticsearch 作为 LLM 驱动的应用程序的检索引擎和向量存储的各种用例的笔记本。

  • 集成。演示如何将流行的服务和项目与 Elasticsearch 集成的笔记本,包括 OpenAI、Hugging Face 和 LlamaIndex

  • Langchain。演示如何将 Elastic 与 LangChain 集成的笔记本,LangChain 是一个用于开发由语言模型驱动的应用程序的框架。