模式定义
如何定义索引的模式。
索引结构由模式定义。模式指定字段、字段类型、是否应建立索引或存储,以及其他附加配置选项。通过正确配置模式,可以优化搜索性能并控制索引的存储要求。
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 页面上了解更多关于可用字段类型和选项的信息。