# Search命令
# FT._LIST
# 语法
FT._LIST
# 描述
返回所有现有索引的列表
# 示例
FT._LIST
1) "idx"
2) "movies"
3) "imdb"
# FT.AGGREGATE
# 语法
FT.AGGREGATE index query
[VERBATIM]
[LOAD count field [field ...]]
[TIMEOUT timeout]
[GROUPBY nargs property [property ...] [REDUCE function nargs arg [arg ...] [AS name] [REDUCE function nargs arg [arg ...] [AS name] ...]] ...]]
[SORTBY nargs [property ASC | DESC [property ASC | DESC ...]] [MAX num] [WITHCOUNT | WITHOUTCOUNT]]
[APPLY expression AS name [APPLY expression AS name ...]]
[LIMIT offset num]
[FILTER filter]
[WITHCURSOR [COUNT read_size] [MAXIDLE idle_time]]
[PARAMS nargs name value [name value ...]]
[SCORER scorer]
[ADDSCORES]
[DIALECT dialect]
# 描述
对索引执行搜索查询并聚合结果。
# 参数
- index
这是执行查询所针对的索引名称。须先使用 FT.CREATE 命令来创建该索引
- query
用于检索文档的基础过滤查询。它的语法与搜索查询完全相同,包括过滤(filters)、联合(unions)、排除(not)、可选(optional)等条件
- VERBATIM
若启用该设置,系统将不会对查询词进行词干提取来扩展搜索,而是直接按原词进行精确匹配
- LOAD
从源文档中加载文档属性
- identifier 既可以是哈希(hashes)和 JSON 的字段名,也可以是针对 JSON 的 JSON Path 表达式。
- property 是可选的,用于指定结果中显示的字段名。如果没有提供该参数,系统会默认使用 identifier(但建议尽量避免这么做)。
- 如果将 nargs 设置为 *,则会加载文档中的所有属性
用于聚合计算的属性应存储为 SORTABLE,这样聚合管道就能以极低的延迟获取这些数据。而使用 LOAD 会严重拖慢聚合查询的性能,因为处理每一条记录时,都需要对 Redis 键执行类似 HMGET 的操作。当这个操作应用于数百万个键时,会导致极高的处理耗时
- GROUPBY
在聚合管道中,根据一个或多个属性对结果进行分组。每个分组必须至少包含一个聚合函数,该函数用于处理组内的数据条目,例如对它们进行计数,或执行其他多种聚合运算
- REDUCE
使用归约函数(reduction function)将每个分组中匹配到的结果集缩减为单条记录。例如,COUNT 用于统计该分组内的记录总数。你可以使用可选参数 AS {name} 为归约结果指定自定义的属性名。如果未指定名称,系统生成的默认名称将是归约函数名与分组属性的组合。例如,如果对属性 @foo 使用了 COUNT_DISTINCT 但未指定名称,生成的结果字段名将会是 count_distinct
- SORTBY
根据指定的属性列表,对聚合管道中到 SORTBY 这一步为止的结果进行排序
-默认情况下,排序为升序(ascending),但可以为每个属性单独指定 ASC(升序)或 DESC(降序)。 -nargs 代表排序参数的总数量(包含 ASC 和 DESC)。例如,SORTBY 4 @foo ASC @bar DESC 中,参数数量就是 4。 -MAX 用于优化排序性能,它通过仅对前 n 个最大(或最小)的元素进行排序来实现。虽然它与 LIMIT 没有直接关联,但在常规查询中,通常只需使用 SORTBY … MAX 即可满足需求
用于 SORTBY 的属性应存储为 SORTABLE,以确保能以极低的延迟获取这些数据
计数行为(Counts behavior):可选的 WITHCOUNT 参数会返回带排序的查询结果的精确总数。为了获取准确的计数,该操作需要处理所有结果,因此其性能不如优化后的选项
- APPLY
在聚合管道中,根据一个或多个属性对结果进行分组。每个分组必须至少包含一个聚合函数,该函数用于处理组内的数据条目,例如对它们进行计数,或执行其他多种聚合运算
对一个或多个属性执行一对一的转换,并将转换后的结果作为新属性存储到管道的后续步骤中,或者直接用该转换结果替换掉原有的属性
expr 是一个表达式,可用于对数值属性执行算术运算,或根据属性的数据类型应用相应的函数(详见下文),也可以是上述两者的任意组合。例如,APPLY "sqrt(@foo)/log(@bar) + 5" AS baz 会在管道处理过程中对每条记录动态计算该表达式,并将结果存储为一个名为 baz 的新属性。在管道的后续步骤中,可以通过进一步的 APPLY、SORTBY、GROUPBY 或 REDUCE 操作来引用这个新属性
- LIMIT
用于限制返回的结果数量,仅返回从 offset(从零开始计数)开始的 num 条结果。如果你仅仅是想限制排序操作的输出数量,使用 SORTBY … MAX 会高效得多。此外,如果在查询期间某个键过期了,尝试加载该键的值时将返回一个空数组
不过,LIMIT 也可以用于在不排序的情况下限制返回结果的数量,或者配合 SORTBY MAX 对前 n 个最大(或最小)的结果进行分页。例如,如果要获取前 100 个结果中的第 50 到第 100 条,最高效的写法是 SORTBY 1 @foo MAX 100 LIMIT 50 50。如果在 SORTBY 中去掉 MAX,管道就会对所有的记录进行全量排序,然后再对第 50 到第 100 条结果进行分页截取
- FILTER
使用与每条结果中的值相关的谓词表达式来过滤结果。这些过滤操作会在查询之后执行,并且针对的是管道当前状态下的数据
- WITHCURSOR
使用比 LIMIT 更快捷的替代方案来扫描部分结果
- TIMEOUT
如果进行了设置,将覆盖该模块的超时参数
- ADDSCORES
ADDSCORES 选项会将全文搜索的评分值暴露给聚合管道(aggregation pipeline)。你可以在管道中使用 @__score,如下面的示例所示:
FT.AGGREGATE idx 'hello' ADDSCORES SORTBY 2 @__score DESC
- DIALECT
用于选择执行该查询时所使用的方言版本。如果未指定,查询将使用模块初始加载时设置的默认方言版本,或者通过 FT.CONFIG SET 命令配置的默认方言版本来执行
# 示例
> JSON.SET doc:1 $ '[{"arr": [1, 2, 3]}, {"val": "hello"}, {"val": "world"}]'
OK
> FT.CREATE idx ON JSON PREFIX 1 doc: SCHEMA $..arr AS arr NUMERIC $..val AS val TEXT
OK
> FT.AGGREGATE idx * LOAD 2 arr val
1) (integer) 1
2) 1) "arr"
2) "[1,2,3]"
3) "val"
4) "hello"
> FT.AGGREGATE idx * LOAD 2 arr val DIALECT 3
1) (integer) 1
2) 1) "arr"
2) "[[1,2,3]]"
3) "val"
4) "[\"hello\",\"world\"]"
# FT.ALIASADD
# 语法
FT.ALIASADD alias index
# 描述
给索引添加一个别名
# 参数
- alias index
指定要添加到索引中的别名。一个索引可以拥有多个别名,但别名不能指向另一个别名。FT.ALIASADD 允许管理员将应用程序的查询透明地重定向到其他索引
# 示例
> SET mykey "10"
OK
> DECRBY mykey 3
(integer) 7
> DECRBY counter 5
(integer) -5
# FT.ALIASDEL
# 语法
FT.ALIASDEL alias
# 描述
从索引中移除别名
# 参数
- alias
待移除的索引别名
# 示例
> FT.ALIASDEL alias
OK
# FT.ALIASUPDATE
# 语法
FT.ALIASUPDATE alias index
# 描述
为索引添加一个别名。如果该别名已关联到其他索引,FT.ALIASUPDATE 会移除该别名与原索引的关联
# 参数
- alias index
指定要添加到索引中的别名
# 示例
> FT.ALIASUPDATE alias idx
OK
# FT.ALTER
# 语法
FT.ALTER index [SKIPINITIALSCAN] SCHEMA ADD field options
# 描述
为索引添加新属性。向索引中添加属性后,未来的文档更新在建立索引时将会使用该新属性,同时现有的文档也会被重新索引
# 参数
- index
指定要创建的索引名称
- SKIPINITIALSCAN
若启用该选项,则跳过扫描与索引操作
- SCHEMA ADD
在 SCHEMA 关键字之后,声明需要添加的字段:attribute 为要添加的属性,options 为属性选项
# 示例
> FT.ALTER idx SCHEMA ADD id2 NUMERIC SORTABLE
OK
# FT.CONFIG GET
# 语法
FT.CONFIG GET option
# 描述
检索配置选项
# 参数
- option
配置选项的名称,使用 '*' 表示全部
# 示例
> FT.CONFIG GET TIMEOUT
1) 1) TIMEOUT
2) 42
> FT.CONFIG GET *
1) 1) EXTLOAD
2) (nil)
2) 1) SAFEMODE
2) true
3) 1) CONCURRENT_WRITE_MODE
2) false
4) 1) NOGC
2) false
5) 1) MINPREFIX
2) 2
6) 1) FORKGC_SLEEP_BEFORE_EXIT
2) 0
7) 1) MAXDOCTABLESIZE
2) 1000000
8) 1) MAXSEARCHRESULTS
2) 1000000
9) 1) MAXAGGREGATERESULTS
2) unlimited
10) 1) MAXEXPANSIONS
2) 200
11) 1) MAXPREFIXEXPANSIONS
2) 200
12) 1) TIMEOUT
2) 42
13) 1) INDEX_THREADS
2) 8
14) 1) SEARCH_THREADS
2) 20
15) 1) FRISOINI
2) (nil)
16) 1) ON_TIMEOUT
2) return
17) 1) GCSCANSIZE
2) 100
18) 1) MIN_PHONETIC_TERM_LEN
2) 3
19) 1) GC_POLICY
2) fork
20) 1) FORK_GC_RUN_INTERVAL
2) 30
21) 1) FORK_GC_CLEAN_THRESHOLD
2) 100
22) 1) FORK_GC_RETRY_INTERVAL
2) 5
23) 1) FORK_GC_CLEAN_NUMERIC_EMPTY_NODES
2) true
24) 1) _FORK_GC_CLEAN_NUMERIC_EMPTY_NODES
2) true
25) 1) _MAX_RESULTS_TO_UNSORTED_MODE
2) 1000
26) 1) UNION_ITERATOR_HEAP
2) 20
27) 1) CURSOR_MAX_IDLE
2) 300000
28) 1) NO_MEM_POOLS
2) false
29) 1) PARTIAL_INDEXED_DOCS
2) false
30) 1) UPGRADE_INDEX
2) Upgrade config for upgrading
31) 1) _NUMERIC_COMPRESS
2) false
32) 1) _FREE_RESOURCE_ON_THREAD
2) true
33) 1) _PRINT_PROFILE_CLOCK
2) true
34) 1) RAW_DOCID_ENCODING
2) false
35) 1) _NUMERIC_RANGES_PARENTS
2) 0
36) 1) MINSTEMLEN
2) 4
# FT.CONFIG SET
# 语法
FT.CONFIG SET option value
# 描述
设置 RediSearch 配置参数的值
# 参数
- option
配置选项的名称,使用 '*' 表示全部
- value
是配置选项的值
# 示例
> FT.CONFIG SET TIMEOUT 42
OK
# FT.CREATE
# 语法
FT.CREATE index
[ON HASH | JSON]
[PREFIX count prefix [prefix ...]]
[FILTER {filter}]
[LANGUAGE default_lang]
[LANGUAGE_FIELD lang_attribute]
[SCORE default_score]
[SCORE_FIELD score_attribute]
[PAYLOAD_FIELD payload_attribute]
SCHEMA
field_name [AS alias] TEXT | TAG | NUMERIC | GEO | VECTOR | GEOSHAPE [ SORTABLE [UNF]] [NOINDEX]
[field_name [AS alias] TEXT | TAG | NUMERIC | GEO | VECTOR | GEOSHAPE [ SORTABLE [UNF]] [NOINDEX] ...]
# 描述
创建一个索引。
# 参数
- index
是创建的索引名。 如果该索引已经存在,则返回错误回复。
SCHEMA
在SCHEMA关键字之后,声明要索引哪些字段,以及每个字段的类型。
字段类型包括:
TEXT- 允许对该属性中的值进行全文搜索查询。
TAG- 允许与该属性值进行精确匹配查询,如类别或主键。
NUMERIC- 允许对该属性中的值进行数值范围查询。
GEO- 允许对该属性中的值(点)进行半径范围查询。属性的值必须是一个包含经度(前)和纬度的字符串,中间用逗号分隔。
VECTOR- 允许对该属性中的值进行向量查询。
GEOSHAPE- 允许对该属性中的值进行多边形查询。属性的值必须遵循WKT符号列表,这些点表示多边形边,中间用逗号分隔。场类型可以跟随以下坐标系之一:POLYGON((x1 y1, x2 y2, ...)GEOSHAPE
- SPHERICAL- 地理经度和纬度坐标
- FLAT- 笛卡尔 X Y 坐标 默认坐标系为SPHERICAL
字段选项包括:
SORTABLE - NUMERIC属性可以有一个可选的可排序参数。用户通过该属性的值排序结果,结果以极低的延迟获得。注意声明它会增加内存开销,所以不要在大文本属性上声明。
UNF- 默认情况下,对于哈希值(非 JSON)对索引值进行规范化(字符设置为小写,去除变音符号)。使用未规范化形式(UNF)时,你可以禁用规范化,保留原始形式。
NOINDEX- 属性可以有选项,这意味着它们不会被索引。这与 配合 非常有用,用于创建属性,其通过部分更新不会导致文档的完全重新索引。如果属性有NOINDEX且没有SORTABLE,索引会忽略它。
ON
目前支持HASH(默认)和JSON。
- **PREFIX **
告诉索引应索引哪些键。你可以添加多个前缀来索引。由于参数是可选的,默认为(所有键).*
- FILTER
是过滤表达式。可以用来访问刚刚添加或更改的密钥。字段可以通过传递 来设置字段名称。@__key'FILTER @indexName=="myindexname"'
- LANGUAGE
表示索引中文档的默认语言。默认是英语。
- **LANGUAGE_FIELD **
是文档属性,作为文档语言。
- **SCORE **
是索引中文档的默认得分。默认分数是1.0。
- SCORE_FIELD
是你根据用户排名作为文档排名的文档属性。必须在0.0到1.0之间。如果没有设置,默认分数是1。
- **PAYLOAD_FIELD **
是文档属性,你用作文档的二进制安全有效载荷字符串,可以在查询时通过自定义评分函数进行评估,或检索到客户端。
# 示例
创建一个索引,存储标题、发布日期和以 开头的博客文章哈希的类别:
> FT.CREATE idx ON HASH PREFIX 1 blog:post: SCHEMA title TEXT SORTABLE published_at NUMERIC SORTABLE category TAG SORTABLE
OK
在同一索引中索引两个不同的哈希值,一个包含作者数据,一个包含书籍:
> FT.CREATE author-books-idx ON HASH PREFIX 2 author:details: book:details: SCHEMA
author_id TAG SORTABLE author_ids TAG title TEXT name TEXT
只索引带有副标题的书籍。
> FT.CREATE subtitled-books-idx ON HASH PREFIX 1 book:details FILTER '@subtitle != ""' SCHEMA title TEXT
索引书带有“类别”属性,每个类别之间用一个字符分隔;
> FT.CREATE books-idx ON HASH PREFIX 1 book:details SCHEMA title TEXT categories TAG SEPARATOR ";"
以下示例使用的数据类似于上述哈希示例,但使用了 JSON。
> FT.CREATE idx ON JSON SCHEMA $.title AS title TEXT $.categories AS categories TAG```
---
## FT.CURSOR DEL
#### 语法
```bash
FT.CURSOR DEL index cursor_id
# 描述
删除游标
# 参数
- index
指定要创建的索引名称
- cursor_id
是游标的 ID
# 示例
> FT.CURSOR DEL idx 342459320
OK
> FT.CURSOR DEL idx 342459320
(error) Cursor does not exist
# FT.CURSOR READ
# 语法
FT.CURSOR READ index cursor_id [COUNT read size]
# 描述
从现有游标中读取下一批结果
# 参数
- index
指定要创建的索引名称
- cursor_id
是游标的 ID
- [COUNT read_size]
表示要读取的结果数量。此参数会覆盖在 FT.AGGREGATE 中指定的 COUNT 值
# 示例
> FT.CURSOR READ idx 342459320 COUNT 50
# FT.DICTADD
# 语法
FT.DICTADD dict term [term ...]
# 描述
向词典中添加词条
# 参数
- dict
为字典名称
- term
要添加到字典中的词条
# 示例
> FT.DICTADD dict foo bar "hello world"
(integer) 3
# FT.DICTADD
# 语法
FT.DICTADD dict term [term ...]
# 描述
向词典中添加词条
# 参数
- dict
为字典名称
- term
要添加到字典中的词条
# 示例
> FT.DICTADD dict foo bar "hello world"
(integer) 3
# FT.DICTDEL
# 语法
FT.DICTDEL dict term [term ...]
# 描述
从词典中删除词条
# 参数
- dict
为字典名称
- term
要添加到字典中的词条
# 示例
> FT.DICTDEL dict foo bar "hello world"
(integer) 3
# FT.DICTDUMP
# 语法
FT.DICTDUMP dict
# 描述
导出给定词典中的所有词条
# 参数
- dict
为字典名称
# 示例
> FT.DICTDUMP dict
1) "foo"
2) "bar"
3) "hello world"
# FT.DROPINDEX
# 语法
FT.DROPINDEX index [DD]```
#### 描述
删除索引
#### 参数
- **index**
是全文索引的名称。须先使用 FT.CREATE 命令来创建该索引
- **DD**
如果设置了该选项,drop index操作会同时删除实际的文档键。FT.DROPINDEX index DD 是一个异步操作。默认情况下,FT.DROPINDEX 不会删除与该索引关联的文档。加上 DD 选项才会同时删除这些文档。如果索引创建仍在进行中,那么只有已经被索引的文档哈希会被删除,剩余待索引的文档哈希将保留在数据库中。要检查索引是否已完成,可以使用 FT.INFO 命令
#### 示例
```bash
> FT.DROPINDEX idx DD
OK
# FT.EXPLAIN
# 语法
FT.EXPLAIN index query [DIALECT dialect]
# 描述
设置 key 的字符串值,并同时设置其过期时间(以毫秒为单位)。如果 key 不存在则会创建新 key。PSETEX 与 SETEX 功能相同,区别仅在于过期时间使用毫秒而非秒。
# 参数
- index
是全文索引的名称。须先使用 FT.CREATE 命令来创建该索引
- query
是查询字符串,就像发送给 FT.SEARCH 命令的那样
- DIALECT
用于执行查询的方言版本。如果未指定,查询将使用模块初始加载时设置的默认方言版本,或者通过 FT.CONFIG SET 命令设置的版本来执行
# 示例
> FT.EXPLAIN rd "(foo bar)|(hello world) @date:[100 200]|@date:[500 +inf]"
INTERSECT {
UNION {
INTERSECT {
foo
bar
}
INTERSECT {
hello
world
}
}
UNION {
NUMERIC {100.000000 <= x <= 200.000000}
NUMERIC {500.000000 <= x <= inf}
}
}
# FT.EXPLAINCLI
# 语法
FT.EXPLAINCLI index query [DIALECT dialect]
# 描述
返回复杂查询的执行计划
# 参数
- index
是全文索引的名称。须先使用 FT.CREATE 命令来创建该索引
- query
是查询字符串,就像发送给 FT.SEARCH 命令的那样
# 示例
> FT.EXPLAINCLI rd "(foo bar)|(hello world) @date:[100 200]|@date:[500 +inf]"
1) INTERSECT {
2) UNION {
3) INTERSECT {
4) UNION {
5) foo
6) +foo(expanded)
7) }
8) UNION {
9) bar
10) +bar(expanded)
11) }
12) }
13) INTERSECT {
14) UNION {
15) hello
16) +hello(expanded)
17) }
18) UNION {
19) world
20) +world(expanded)
21) }
22) }
23) }
24) UNION {
25) NUMERIC {100.000000 <= @date <= 200.000000}
26) NUMERIC {500.000000 <= @date <= inf}
27) }
28) }
29)
# FT.HYBRID
# 语法
FT.HYBRID index
SEARCH query
[SCORER scorer]
[YIELD_SCORE_AS name]
VSIM vector_field $vector_param
[KNN count K k [EF_RUNTIME ef_runtime]] [SHARD_K_RATIO shard_k_ratio]]
[RANGE count RADIUS radius [EPSILON epsilon]]
[YIELD_SCORE_AS name]
[FILTER] count filter-expression [POLICY [ADHOC/BATCHES] BATCH_SIZE batch-size-value]
[COMBINE RRF count [CONSTANT constant] [WINDOW window] [YIELD_SCORE_AS name]]
[COMBINE LINEAR count [[ALPHA alpha] [BETA beta]] [WINDOW window] [YIELD_SCORE_AS name]]
[LIMIT offset num]
[SORTBY count sortby [ASC | DESC]]
[NOSORT]
[LOAD count field [field ...]]
[LOAD *]
[GROUPBY nargs property [property ...]
[GROUPBY nargs property [property ...]
[REDUCE function nargs arg [arg ...] [AS name]
[REDUCE function nargs arg [arg ...] [AS name] ...]] ...]]
[APPLY expression AS name [APPLY expression AS name ...]]
[FILTER filter]
PARAMS nargs vector_param vector_blob [name value ...]
[TIMEOUT timeout]
# 描述
将 key 设置为字符串 value,并设置 key 在 seconds 秒后过期。
该命令等价于执行:
SET key value EX seconds
当 seconds 无效时返回错误。
# 参数
key
键名。
seconds
生存时间,单位为秒。
value
要设置的字符串值。
# 示例
> SETEX mykey 10 "Hello"
OK
> TTL mykey
(integer) 10
> GET mykey
"Hello"
# FT.INFO
# 语法
FT.INFO index
# 描述
返回关于指定索引的信息和统计数据
# 参数
- index
这是指定索引的名称。你必须先使用 FT.CREATE 命令来创建该索引。也可以使用通过 FT.ALIASADD 或 FT.ALIASUPDATE 命令创建的索引别名
# FT.PROFILE
# 语法
FT.PROFILE index <SEARCH | HYBRID | AGGREGATE> [LIMITED] QUERY query
# 描述
执行 FT.SEARCH、FT.HYBRID 或 FT.AGGREGATE 命令以收集性能细节
# 参数
- index
这是指定索引的名称
- SEARCH | HYBRID | AGGREGATE
表示性能分析(profile)的类型,可以是 FT.SEARCH、FT.HYBRID 或 FT.AGGREGATE
- LIMITED
移除任何读取器迭代器
# FT.SEARCH
# 语法
FT.SEARCH index query
[NOCONTENT]
[VERBATIM]
[WITHSCORES]
[WITHPAYLOADS]
[WITHSORTKEYS]
[FILTER numeric_field min max [ FILTER numeric_field min max ...]]
[GEOFILTER geo_field lon lat radius m | km | mi | ft [ GEOFILTER geo_field lon lat radius m | km | mi | ft ...]]
[INKEYS count key [key ...]]
[INFIELDS count field [field ...]]
[RETURN count identifier [AS property] [ identifier [AS property] ...]]
[SUMMARIZE [ FIELDS count field [field ...]] [FRAGS num] [LEN fragsize] [SEPARATOR separator]]
[HIGHLIGHT [ FIELDS count field [field ...]] [ TAGS open close]]
[SLOP slop]
[TIMEOUT timeout]
[INORDER]
[LANGUAGE language]
[EXPANDER expander]
[SCORER scorer]
[EXPLAINSCORE]
[PAYLOAD payload]
[SORTBY sortby [ ASC | DESC] [WITHCOUNT | WITHOUTCOUNT]]
[LIMIT offset num]
[PARAMS nargs name value [ name value ...]]
[DIALECT dialect]
# 描述
返回 key 对应字符串值的长度。如果 key 不存在,返回 0。如果 key 存储的值不是字符串类型,则返回错误。
# 参数
index 索引名。你必须先用
FT.CREATE创建索引。query 是用于搜索的文本查询。如果超过一个词,就要用引号。
NOCONTENT 返回文档 ID,而不是内容。如果 RediSearch 只是外部文档集合上的索引,这非常有用。
VERBATIM 不尝试使用词干提取来扩展查询,而是逐字搜索查询词。
# 示例
> SET mykey "Hello world"
OK
> STRLEN mykey
(integer) 11
> STRLEN nonexisting
(integer) 0
# FT.SPELLCHECK
# 语法
FT.SPELLCHECK index query
[DISTANCE distance]
[TERMS INCLUDE | EXCLUDE dictionary [terms [terms ...]]]
[DIALECT dialect]
# 描述
对查询进行拼写纠正,并返回拼写错误词汇的修改建议
# 参数
- index
是包含已索引词汇的索引
- query
是搜索查询语句
- TERMS
对自定义词典的包含或排除操作
- DIALECT
用于执行查询的方言版本。如果未指定,查询将使用模块初始加载时设置的默认方言版本,或者通过 FT.CONFIG SET 命令设置的版本来执行
# 示例
> FT.SPELLCHECK idx held DISTANCE 2
1) 1) "TERM"
2) "held"
3) 1) 1) "0.66666666666666663"
2) "hello"
2) 1) "0.33333333333333331"
2) "help"
# FT.SYNDUMP
# 语法
FT.SYNDUMP index
# 描述
转储同义词组的内容
# 参数
- index
是包含已索引词汇的索引
# 示例
> FT.SYNDUMP idx
1) "shalom"
2) 1) "synonym1"
2) "synonym2"
3) "hi"
4) 1) "synonym1"
5) "hello"
6) 1) "synonym1"
# FT.SYNUPDATE
# 语法
FT.SYNUPDATE index synonym_group_id
[SKIPINITIALSCAN] term [term ...]
# 描述
更新同义词组
# 参数
- index
是包含已索引词汇的索引
- synonym_group_id
使用 FT.SYNUPDATE 命令来创建或更新同义词组,并添加新的词条。执行该命令会触发对所有文档的扫描
- SKIPINITIALSCAN
不会进行扫描和索引,且只有更新之后被索引的文档才会受到影响
# 示例
> FT.SYNUPDATE idx synonym hello hi shalom
OK
> FT.SYNUPDATE idx synonym SKIPINITIALSCAN hello hi shalom
OK
# FT.TAGVALS
# 语法
FT.TAGVALS index field_name
# 描述
返回在标签(Tag)字段中已建立索引的所有不重复的值
# 参数
- index
这是指定索引的名称。你必须先使用 FT.CREATE 命令来创建该索引。
- field_name
如果标签(Tag)字段用于索引城市、类别等数据,请使用 FT.TAGVALS 命令
# 示例
> FT.TAGVALS idx myTag
1) "Hello"
2) "World"
← JSON命令 VectorSet命令 →