模式定义
如何定义索引的模式。
索引结构由模式定义。模式指定字段、字段类型、是否应建立索引或存储,以及其他附加配置选项。通过正确配置模式,可以优化搜索性能并控制索引的存储要求。
FT.CREATE idx
ON HASH
PREFIX 1 blog:post:
SCHEMA
title TEXT WEIGHT 5.0
content TEXT
author TAG
created_date NUMERIC SORTABLE
views NUMERIC
在此示例中,为名为 idx
的索引定义了一个模式,该索引将为所有键名以 blog:post:
开头的哈希文档建立索引。模式包括 title
、content
、author
、created_date
和 views
字段。TEXT
类型表示 title
和 content
字段是文本类型,TAG
类型用于 author
字段,NUMERIC
类型用于 created_date
和 views
字段。此外,为 title
字段分配了 5.0 的权重,以使其在搜索结果中更具相关性,并将 created_date
标记为 SORTABLE
以启用基于该字段的排序。
您可以在 FT.CREATE
页面上了解更多关于可用字段类型和选项的信息。
更多模式定义示例
使用分隔符为标签建立索引
为具有 categories
属性的图书建立索引,其中每个类别都由 ;
字符分隔。
FT.CREATE books-idx
ON HASH
PREFIX 1 book:details
SCHEMA
title TEXT
categories TAG SEPARATOR ";"
以多种方式为一个字段建立索引
将哈希中的 sku
属性同时作为 TAG
和 TEXT
进行索引
FT.CREATE idx
ON HASH
PREFIX 1 blog:post:
SCHEMA
sku AS sku_text TEXT
sku AS sku_tag TAG SORTABLE
为具有多个前缀的文档建立索引
为两个不同的哈希建立索引,一个包含作者数据,另一个包含图书数据
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
在此示例中,作者数据的键使用键模式 author:details:<id>
,而图书数据的键使用模式 book:details:<id>
。
仅当字段使用 FILTER
指定某个值时才为文档建立索引
为姓名以 G 开头的作者建立索引
FT.CREATE g-authors-idx
ON HASH
PREFIX 1 author:details
FILTER 'startswith(@name, "G")'
SCHEMA
name TEXT
仅为具有副标题的图书建立索引
FT.CREATE subtitled-books-idx
ON HASH
PREFIX 1 book:details
FILTER '@subtitle != ""'
SCHEMA
title TEXT
使用 JSONPath 表达式为 JSON 文档建立索引
为包含 title
和 categories
字段的 JSON 文档建立索引。title
字段作为 TEXT
进行索引,categories
字段作为 TAG
进行索引。
FT.CREATE idx
ON JSON
SCHEMA
$.title AS title TEXT
$.categories AS categories TAG
您可以在 FT.CREATE
页面上了解更多关于可用字段类型和选项的信息。