模式定义

如何定义索引的模式。

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

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_dateviewsTEXT类型表示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:,而书籍数据的键使用模式 book:details:

仅当字段使用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 ↑