搜索和查询
Redis 堆栈 |
---|
RediSearch 2.x 模块是一个源代码可用的项目,可让您为开源 Redis 数据库构建强大的搜索查询。 与 Redis Enterprise Software 结合使用时,您可以使用相同的协议和命令对高效的内存中索引运行异地复制查询和全文搜索。
索引文档
搜索和查询引擎为文档编制索引,文档是将数据表示为字段-值对的对象。您可以为每个文档的多个字段编制索引,这些字段可以表示文本、数字或地理空间数据类型。
当数据库中的文档发生更改时,索引会自动处理这些更改,以使搜索结果保持最新。
使用索引,您可以执行以下作:
支持的文档类型
您可以将文档存储为 Redis 哈希或 JSON。要搜索和查询 JSON 文档,您还需要在数据库中启用 JSON。
哈希文档
使用 Redis 哈希,每个文档都分配给一个键,并使用字段-值对来表示文档的内容。
您可以运行HGETALL
检索整个哈希文档。
JSON 文档
您可以索引、搜索和查询存储在数据库中的 JSON 文档。
有关如何搜索和查询 JSON 文档的更多信息,请参阅快速入门。
搜索功能
对于全文搜索,您可以自定义搜索结果的字段查询和排名。 查询时,您可以使用多个谓词在一个查询中查询文本、数字和地理空间字段。 您还可以按特定字段排序,并使用偏移量限制结果,以生成自定义结果页面。
Redis Stack 支持超过 15 种自然语言进行词干提取,并包括带有特定命令的自动完成引擎,这些命令可以提供实时交互式搜索建议。
搜索和查询主动-主动数据库
由于采用了新的 RediSearch 架构和方法,RediSearch 2.x 支持主动-主动数据库。 您现在可以从地理分布式数据库实例提供索引信息。
重新分片索引数据
通过将索引移出键空间并将数据构建为哈希,RediSearch 2.x 可以对数据库进行重新分片。 当一半数据移动到新分片时,将同步创建与该数据相关的索引,并且 Redis 在检测到键已删除时从索引中删除键。 但是,由于新分片上的索引是同步创建的,因此预计重新分片过程将比未启用搜索和查询的数据库重新分片花费更长的时间。
局限性
- 您不能将搜索和查询功能与 OSS Cluster API 一起使用。