在前面的示例中,索引是使用 PREFIX
创建的,它会索引所有匹配类型和前缀的键。
也可以使用筛选器创建索引,例如创建一个包含所有在 1990 年至 2000 年间(不包含 2000 年)发布的“戏剧”电影的索引。
FILTER
` 表达式使用的是聚合筛选器语法,例如对于类型和发布年份,它将是
FILTER "@genre=='Drama' && @release_year>=1990 && @release_year<2000"
所以当你创建索引时
FT.CREATE idx:drama ON Hash PREFIX 1 "movie:" FILTER "@genre=='Drama' && @release_year>=1990 && @release_year<2000" SCHEMA title TEXT SORTABLE release_year NUMERIC SORTABLE
你可以运行 FT.INFO idx:drama
命令来查看索引定义和统计信息。
注意
PREFIX
不是可选的。idx:movie
获取相同的数据。你可以通过运行以下查询来检查数据是否已被索引,它们应该返回相同数量的文档。
在 idx:drama
上
> FT.SEARCH idx:drama " @release_year:[1990 (2000]" LIMIT 0 0
1) (integer) 24
在 idx"movie
上
> FT.SEARCH idx:movie "@genre:{Drama} @release_year:[1990 (2000]" LIMIT 0 0
1) (integer) 24