模式定义

如何定义索引的模式。

索引结构由模式定义。模式指定字段、字段类型、是否应建立索引或存储,以及其他附加配置选项。通过正确配置模式,可以优化搜索性能并控制索引的存储要求。

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: 开头的哈希文档建立索引。模式包括 titlecontentauthorcreated_dateviews 字段。TEXT 类型表示 titlecontent 字段是文本类型,TAG 类型用于 author 字段,NUMERIC 类型用于 created_dateviews 字段。此外,为 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 属性同时作为 TAGTEXT 进行索引

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 文档建立索引

为包含 titlecategories 字段的 JSON 文档建立索引。title 字段作为 TEXT 进行索引,categories 字段作为 TAG 进行索引。

FT.CREATE idx 
    ON JSON 
SCHEMA 
    $.title AS title TEXT 
    $.categories AS categories TAG

您可以在 FT.CREATE 页面上了解更多关于可用字段类型和选项的信息。

评价此页
返回顶部 ↑