Schema 定义

如何定义索引的架构。

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

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这将为所有 keyname 开头的哈希文档编制索引blog:post:. 架构包括字段title,content,author,created_dateviews.这TEXTtype 表示titlecontent字段是基于文本的,则TAGtype 用于author字段和NUMERICtype 用于created_dateviews领域。此外,还为title字段使其在搜索结果中更具相关性,以及created_date标记为SORTABLE以启用基于此字段的排序。

您可以在FT.CREATE页。

更多 Schema 定义示例

带分隔符的索引标签

索引具有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
为具有多个前缀的文档编制索引

为两个不同的哈希编制索引,一个包含 author 数据,一个包含 book 数据:

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 数据的键则使用模式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领域。这titlefield 的索引为TEXTcategoriesfield 的索引为TAG.

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

您可以在FT.CREATE页。

为本页评分
返回顶部 ↑