交互式示例
elasticsearch-labs 存储库包含交互式和可执行的 Python 笔记本、示例应用程序和用于测试 Elasticsearch 的资源,使用 Python 客户端。这些示例主要侧重于向量搜索、混合搜索和生成式 AI用例,但您还会找到基本操作的示例,例如创建索引映射和执行词法搜索。
搜索笔记本
如果您是 Elasticsearch 的新手,搜索 文件夹是一个不错的起点。此文件夹包含许多笔记本,这些笔记本演示了 Elasticsearch 的基础知识,例如索引向量、运行词法、语义和 *混合* 搜索等。
以下笔记本可用
以下是您将在每个笔记本中学习的内容的简要概述。
快速入门
在 00-quick-start.ipynb 笔记本中,您将学习如何
将 Elasticsearch Python 客户端用于各种操作。
使用
dense_vector
字段为示例数据集创建和定义索引。使用 Sentence Transformers 将书籍标题转换为嵌入,并将它们索引到 Elasticsearch 中。
执行 k 最近邻 (knn) 语义搜索。
将传统的基于文本的搜索与语义搜索集成,以实现混合搜索系统。
使用倒数排名融合 (RRF) 智能地组合来自不同检索系统的搜索结果。
关键字、查询、过滤
在 01-keyword-querying-filtering.ipynb 笔记本中,您将学习如何
使用 查询和过滤上下文 来搜索和过滤 Elasticsearch 中的文档。
使用
match
和multi-match
查询执行全文搜索。根据
text
、number
、date
或boolean
值查询和过滤文档。使用
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 创建同义词集以增强您的搜索召回率。
配置索引以使用搜索时同义词。
实时更新同义词。
运行由同义词增强的查询。