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
.这TEXT
type 表示title
和content
字段是基于文本的,则TAG
type 用于author
字段和NUMERIC
type 用于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
领域。这title
field 的索引为TEXT
和categories
field 的索引为TAG
.
FT.CREATE idx
ON JSON
SCHEMA
$.title AS title TEXT
$.categories AS categories TAG
您可以在FT.CREATE
页。