数据索引
title: 数据索引
本篇文档介绍如何在规则表达式中使用 .indexOn 规则为节点建立索引,提高查询效率。
规则表达式包含以下两种 .indexOn 的索引方式:
| 索引方式 | 说明 |
|---|---|
| orderByChild | 根据子节点索引 |
| orderByValue | 根据值索引 |
提示:
节点的名称 (key) 和优先级 (priority) 已默认建立索引,不需要额外设置。
orderByChild 索引
Section titled “orderByChild 索引”为子节点建立索引,可以提高 orderByChild 的查询效率。
例如,在下面学生的信息中,可以根据姓名、年龄、分数进行排序,数据结构如下:
{ "students": { "Jack": { "age" : 21, "score" : 88, "weight": 63 }, "Lucy": { "age" : 22, "score" : 91, "weight" : 49 } }}通过 .indexOn 规则,为这些节点建立索引:
{ "rules": { "students": { ".indexOn": ["age", "score"] } }}orderByValue 索引
Section titled “orderByValue 索引”为节点的值建立索引,可以提高 orderByValue 的查询效率。
例如,为学生分数建立一个排行榜,数据结构如下:
{ "scores": { "Jack" : 55, "Lucy" : 81, "LiLei" : 80, "HanMeimei" : 93, "Michael" : 66, "Jane" : 78 }}通过 .indexOn 规则,为这些节点建立索引。
{ "rules": { "scores": { ".indexOn": ".value" } }}