博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RediSearch 索引创建
阅读量:5796 次
发布时间:2019-06-18

本文共 1359 字,大约阅读时间需要 4 分钟。

  hot3.png

索引创建

创建一个索引至少需要5个参数:

FT.CREATE myIdx SCHEMA title TEXT

如上所示,大写字母表示关键字,小写字母代表索引的属性。该命令创建了一个名为"myIdx"的索引,并且声明了一个域"title",其中关键字TEXT表示该域内容为文本类型,除文本类型,也可以定义为数值类型"NUMERIC",等等。

索引数据结构

索引数据结构定义在speck.h/IndexSpec, 如下所示

typedef struct {  char *name; // 索引的名字  FieldSpec *fields; // 索引域列表,该列表默认空间为1024个  int numFields; // 当前索引中有效的域  ......} IndexSpec;

域信息数据结构定义在spec.h/FieldSpec,如下所示

typedef struct fieldSpec { //文档域结构  char *name; //域名  FieldType type; //域的类型,比如文本、数字等  ......

添加文档到索引

添加一个文档至少需要7个参数:

FT.ADD myIdx doc1 1.0 FIELDS title "hello world"

添加文档数据结构

文档数据结构定义在document.h/Document, 如下所示

typedef struct {  const char *name; //添加文档时指定的field名称  RedisModuleString *text; //添加文档时指定的field内容} DocumentField;typedef struct {  RedisModuleString *docKey; //即将文档添加到索引时使用的docId,也是检索结果  DocumentField *fields; //即文档中实际包含的域数组,与索引结构不同,该数组为实际值,并不是所支持的最大值  int numFields; //即文档中实际包含的域个数  float score; //即将文档添加到索引时使用的score  ......} Document;

可见,每个新加入的文档,都会构建一个Document结构体。

查询文档

一个最简单的查询命令,如下所示,查询"hello world":

FT.SEARCH myIdx "hello world"

查询文档数据结构

每个查询指令都会构造一个结构体来完成该次查询,search_ctx.h/RedisSearchCtx结构体定义如下:

typedef struct {  RedisModuleCtx *redisCtx; //模块信息,也里RediSearch本身就是Redis的一个模块,也就是RediSearch模块的相关信息  RedisModuleKey *key; //OpenKey 返回的东东  RedisModuleString *keyName; //"idx:" + 索引名字  IndexSpec *spec; //索引数据结构} RedisSearchCtx;

转载于:https://my.oschina.net/renhc/blog/1815536

你可能感兴趣的文章
【南京Meetup】不断迭代,严苛细节,最终性能如何满足? 基于ELK的大数据平台实践分享...
查看>>
(转)机器学习:偏差处理(2)
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
分享15款很实用的 Sass 和 Compass 工具
查看>>
AMD优势: 与众不同 选择丰富
查看>>
玩转高性能超猛防火墙nf-HiPAC
查看>>
简单按日期查询mysql某张表中的记录数
查看>>
Sql Server 2008 R2 备份与还原
查看>>
自动化部署之jenkins发布PHP项目
查看>>
C/C++编程可用的Linux自带工具
查看>>
Maven介绍与安装配置
查看>>
[Zabbix问题解决]Zabbix discoverer processes 75% busy
查看>>
DC学院学习笔记(十九):聚类算法(k均值、DBSCAN)
查看>>
CUDA学习(二十八)
查看>>
Java动态代理简述
查看>>
c语言排序算法总结
查看>>
敏捷开发“松结对编程”系列之十二:L型代码结构(质量篇之一)
查看>>
技术的成长
查看>>
Netcat
查看>>
关于AS5 SSH支持key认证的完全解决方案
查看>>