索引和查询文档

了解如何使用 Redis 查询引擎处理 JSON 和 hash 文档。

此示例展示了如何为 JSON 文档创建搜索索引并对索引运行查询。然后继续展示了针对 hash 文档的等效代码中的细微差别。

初始化

确保您已安装 Redis 开源版或其他 Redis 服务器。如果您尚未安装 Jedis 客户端库,也请安装它。

添加以下依赖项。除 PathJSONObject 类仅适用于 JSON 外(有关 JSON 路径语法,请参阅 Path),所有依赖项都适用于 JSON 和 hash。

创建数据

创建一些测试数据以添加到数据库中

添加索引

连接到您的 Redis 数据库。以下代码展示了最基本的连接,但请参阅 连接到服务器 了解更多可用的连接选项。

创建索引。在此示例中,仅对带有键前缀 user: 的 JSON 文档进行索引。更多信息请参阅 查询语法

添加数据

将三组用户数据作为 JSON 对象添加到数据库中。如果您使用的键带有 user: 前缀,则 Redis 会在您添加对象时自动对其进行索引

查询数据

您现在可以使用索引搜索 JSON 对象。以下查询搜索任意字段中包含文本“Paul”且年龄值在 30 到 40 之间的对象

指定查询选项,仅返回 city 字段

使用聚合查询来统计每个城市中的所有用户。

与 hash 文档的区别

对 hash 文档进行索引与 JSON 索引非常相似,但您需要指定一些略微不同的选项。

创建 hash 索引的 schema 时,无需为字段添加别名,因为您仍然使用基本名称访问字段。此外,在创建索引时,必须为 FTCreateParamsOn() 选项使用 IndexDataType.HASH。以下代码展示了这些更改,其中包含一个名为 hash-idx:users 的新索引,该索引与前面示例中用于 JSON 文档的 idx:users 索引在其他方面相同。

使用 hset() 添加 hash 文档,而不是使用 jsonSet()

这里的查询命令对 hash 和 JSON 的作用方式相同(但 hash 索引的名称不同)。结果以 Document 对象列表的形式返回,与 JSON 类似

更多信息

有关所有查询功能的完整说明及示例,请参阅Redis 查询引擎 文档。

给本页评分
返回顶部 ↑