Redisearch的基本命令1--FT.CREATE

FT.CREATE

格式:

  FT.CREATE {index} 
    [MAXTEXTFIELDS] [NOOFFSETS] [NOHL] [NOFIELDS] [NOFREQS]
    [STOPWORDS {num} {stopword} ...]
    SCHEMA {field} [TEXT [NOSTEM] [WEIGHT {weight}] | NUMERIC | GEO] [SORTABLE] [NOINDEX] ...

redisearch中最为基本的是要创建一个index(索引,下标),所以不管什么操作都离不开createcreate的选项有几个,但是和其他比起来并不算多,我们要首先知道最基本的使用方法:

ft.create dept schema id numeric name text

上面创建了一个indexdept ,它有两个字段 一个叫id,是数字类型的;一个是name,是文本类型的。
在redisearch中字段一共有三种类型:numeric(数字)、 text(文本) 、geo(地理位置)

作为拓展,redisearch提供了很多提供搜索效率、节约内存的选项。接下来对各个选项进行描述:

MAXTEXTFIELDS: redisearch在text字段大小32字节及以下时对索引编码的方式和32字节以上的编码方式不一样,当text字段超过32字节时,启用该选项以提高索引效率。

NOOFFSETS: 启用该选项代表不储存document的偏移量。

NOHL: no highlight。代表不启用高亮,在搜索时,如果启用高亮,会在搜索结果中的搜索词加上“高亮”,默认显示是加<b><b>搜索词<b>。

NOFIELDS: 在过滤时,某些时候会使用字段进行过滤,启用该选项后不允许该形式的过滤。

NOFREQS: 弄 frequent.启用该选项,避免频繁保存term。这个term我把握不准怎么理解。可能指的是document中的一条数据?

 [STOPWORDS {num} {stopword} ...]: 在索引、搜索时忽略的一组词。默认有一组stopword,其中包含了像as,a,in这些。num代表接下来设置的stopword的个数,0代表关闭默认stopword。>0=n,代表后面跟着n个stopword。记住启用了stopword代表不用默认的stopwords。

SCHEMA 字段关键字,随后添加字段名与字段描述。

以下是字段的可选选项:
SORTABLE:text或者numeric是可排序的,如果搜索时要sortby(排序)则声明。注意会增加内存开销,不需要排序则不启用。

NOSTEM:redisearch默认会有一套stem(词干)分析的法则,类似于你搜索go,在结果中可能会有go,going这类词干一致的结果。nostem代表不启用。

NOINDEX:字段可以选择不被索引。

### 如何部署 Redisearch Redisearch 是基于 Redis 的全文搜索引擎模块,它扩展了 Redis 的功能以支持高效的全文搜索能力。以下是关于如何部署 Redisearch 并完成基本配置的内容。 #### 部署 Redisearch 要成功运行 Redisearch,首先需要安装 Redis 和 Redis Modules 支持环境。可以通过以下方式实现: 1. **下载并编译源码** 如果希望从源代码构建 Redis 和 Redisearch,则可以按照官方文档中的说明执行操作[^4]。这通常涉及克隆 GitHub 存储库以及使用 `make` 命令进行编译。 2. **通过包管理器安装** 对于某些操作系统(如 Ubuntu 或 CentOS),可以直接利用包管理工具来快速安装 Redis 和 Redisearch 模块。例如,在 Debian/Ubuntu 上可运行如下命令: ```bash sudo apt update && sudo apt install redisearch ``` 3. **加载 Redis Module** 安装完成后,需确保在启动 Redis 实例时正确加载 Redisearch 模块。可以在 Redis 配置文件 (`redis.conf`) 中添加以下行以自动加载该模块: ```conf loadmodule /path/to/redisearch.so ``` 这里的路径应指向实际的 Redisearch 动态链接库位置[^5]。 #### 配置 Redisearch 一旦 Redis 已经能够正常工作并与 Redisearch 模块集成在一起,接下来就是对其进行必要的初始化设置以便满足应用需求。 1. **创建索引结构** 使用 FT.CREATE 命令定义一个新的全文检索索引及其字段属性。下面是一个简单的例子展示如何建立一个包含两个文本型字段的文章索引: ```lua FT.CREATE idx:articles SCHEMA title TEXT WEIGHT 5.0 content TEXT ``` 此处,“idx:articles”表示新建了一个名为 articles 的索引;WEIGHT 参数用于调整不同字段的重要性权重[^6]。 2. **向索引入数据** 利用 HSET 结合 FT.ADD 将键值对形式的数据加入到指定索引里去。比如新增一篇文章记录: ```lua HMSET article:1 title "Introduction to Redisearch" content "This is an introduction..." FT.ADD idx:articles article:1 1.0 FIELDS title "Introduction to Redisearch" content "This is an introduction..." ``` 3. **查询已存入的信息** 当前已经具备基础条件来进行关键词匹配查找啦!尝试输入类似这样的语句看看效果吧: ```lua FT.SEARCH idx:articles "introduction" ``` #### 注意事项 - 确认所使用的版本兼容性问题,因为不同的 Redis 版本可能对应特定范围内的 Redis Modules。 - 考虑生产环境中高可用性和性能优化策略,像分片(sharding)或者持久化选项的选择等都需要仔细规划[^7]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值