模式定义

如何定义索引的模式。

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

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字段被索引为TEXTcategories字段被索引为TAG

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

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

RATE THIS PAGE
Back to top ↑