RediSearch 快速入门

开始使用 RediSearch

设置 RediSearch

有几种方法可以在启用 RediSearch 模块的情况下设置 Redis 数据库。

云服务

RediSearch 适用于所有 Redis 云托管服务。Redis Cloud Fixed 订阅提供完全免费的托管数据库,最多 30MB。

在此处创建一个免费的 Redis Cloud 帐户并选择Redis Stack作为您的数据库类型。有关更多详细说明,请参阅Redis 堆栈和模块快速入门。

使用 Docker 运行

要使用 Docker 运行 RediSearch,请使用 redis-stack-server Docker 映像:

$ docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest

有关在 Docker 容器中运行 Redis Stack 的更多信息,请参阅在 Docker 上运行 Redis Stack。

下载二进制文件

要从预编译的二进制文件下载并运行 RediSearch:

从Redis 下载中心下载 RediSearch 的预编译版本。

使用 RediSearch 运行 Redis:

$ redis-server --loadmodule /path/to/module/src/redisearch.so
从源代码构建

从源代码构建和运行 RediSearch:

要求:git&make

克隆RediSearch 存储库(确保包含–recursive正确克隆子模块的选项):

$ git clone --recursive https://github.com/RediSearch/RediSearch.git
$ cd RediSearch

安装依赖项:

$ make setup

建造:

$ make build

使用 RediSearch 运行 Redis: 要求:redis-server

$ make run

有关更详细的构建说明,请参阅开发页面。

创建索引

使用FT.CREATE命令创建具有字段和权重的索引(默认权重为 1.0):

127.0.0.1:6379> FT.CREATE myIdx ON HASH PREFIX 1 doc: SCHEMA title TEXT WEIGHT 5.0 body TEXT url TEXT
OK

doc:此时,任何具有前缀为键的现有哈希文档都会自动添加到索引中。

添加文件

创建索引后,任何带有doc:前缀的新散列文档都会在创建时自动编制索引。

使用HSET命令创建一个新的哈希文档并将其添加到索引中:

127.0.0.1:6379> HSET doc:1 title "hello world" body "lorem ipsum" url "http://redis.io"
(integer) 3

搜索索引

要在索引中搜索包含特定单词的文档,请使用以下FT.SEARCH命令:

127.0.0.1:6379> FT.SEARCH myIdx "hello world" LIMIT 0 10
1) (integer) 1
2) "doc:1"
3) 1) "title"
   2) "hello world"
   3) "body"
   4) "lorem ipsum"
   5) "url"
   6) "http://redis.io"

FT.SEARCH期望有效的 UTF-8 或 ASCII 作为输入。引擎无法处理宽字符 unicode。
配置ACL时,与搜索相关的命令,例如FT.SEARCH将索引名称视为“键”。因此,如果您在允许或禁止搜索命令的 ACL 规则中使用键模式,请包括与指定命令的索引名称匹配的模式。

例如,要启用对索引的搜索,ACL 规则应包含“FT.SEARCH +ft.search ~myIdx +ft.search ~myId* +@all ~myIdx”等myIdx模式。or a category that includes it. Such ACL rules could be, ,

删除索引

要在不删除关联的哈希文档的情况下删除索引,请FT.DROPINDEX在没有DD选项的情况下运行:

127.0.0.1:6379> FT.DROPINDEX myIdx
OK

要删除索引和所有索引的哈希文档,请将选项添加DD到命令中:

127.0.0.1:6379> FT.DROPINDEX myIdx DD
OK

自动完成

添加自动完成建议FT.SUGADD:

127.0.0.1:6379> FT.SUGADD autocomplete "hello world" 100
(integer) 1

测试自动完成建议FT.SUGGET:

127.0.0.1:6379> FT.SUGGET autocomplete "he"
1) "hello world"

索引 JSON 文档

除了 Redis 哈希之外,如果您的数据库同时启用了 RediSearch 和 RedisJSON ,您还可以索引和搜索 JSON 文档。如果您有 Redis Stack 数据库,它会自动包含这两个模块。

要了解如何将 RediSearch 与 JSON 文档结合使用,请参阅索引 JSON 文档。

作者:Jeebiz  创建时间:2023-03-19 23:14
最后编辑:Jeebiz  更新时间:2024-08-16 11:44