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_date和views.这TEXTtype 表示title和content字段是基于文本的,则TAGtype 用于author字段和NUMERICtype 用于created_date和views领域。此外,还为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属性作为TAG和TEXT:
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 文档编制索引
为具有title和categories领域。这titlefield 的索引为TEXT和categoriesfield 的索引为TAG.
FT.CREATE idx
ON JSON
SCHEMA
$.title AS title TEXT
$.categories AS categories TAG
您可以在FT.CREATE页。