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
(索引,下标),所以不管什么操作都离不开create
。create
的选项有几个,但是和其他比起来并不算多,我们要首先知道最基本的使用方法:
ft.create dept schema id numeric name text
上面创建了一个index
叫dept
,它有两个字段 一个叫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:字段可以选择不被索引。