模式定义
如何定义索引的模式。
索引结构由模式定义。模式指定字段、它们的类型、是否应被索引或存储,以及其他额外的配置选项。通过正确配置模式,您可以优化搜索性能并控制索引的存储需求。
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:
开头的哈希文档。
该模式包括字段title
、content
、author
、created_date
和views
。TEXT
类型表示title
和content
字段是基于文本的,TAG
类型用于author
字段,NUMERIC
类型用于created_date
和views
字段。此外,为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
属性作为TAG
和TEXT
:
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文档
索引一个包含title
和categories
字段的JSON文档。title
字段被索引为TEXT
,categories
字段被索引为TAG
。
FT.CREATE idx
ON JSON
SCHEMA
$.title AS title TEXT
$.categories AS categories TAG
您可以在FT.CREATE
页面上了解更多关于可用字段类型和选项的信息。