如何配置索引?
在为 JSON 日志配置索引时,可参考如下配置思路和示例。
索引类型的选择
日志服务提供全文索引和键值索引这两种索引配置方式,您可以参考如下说明,选择索引配置方式。更多信息,请参考配置索引。
说明
如果您同时配置了全文索引和键值索引,则对于配置了键值索引的字段,将以键值索引的配置为准。
- 全文索引:如果要检索日志中的所有字段,建议创建全文索引。
- 键值索引:如果明确仅检索部分字段,则可针对这些目标字段建立键值索引,减少索引费用。
如果对字段有 SQL 分析需求,则必须对目标字段建立键值索引,并开启统计功能。例如您仅统计分析 status 字段和 method 字段,则只需要配置这两个字段的键值索引,并开启统计功能。
索引字段数据类型的选择
日志服务支持的索引字段的数据类型包括 text、long、double 和 JSON。更多信息,请参见索引数据类型。
在为目标字段选择合适的数据类型时,可参考如下思路:
- 非标准 JSON 格式:如果字段值包含了 JSON 格式的内容,但并非标准 JSON 格式,则建议设置为 text 类型。
- 标准 JSON 格式:如果字段值是标准 JSON 格式,建议设置为 JSON 类型。设置为 JSON 类型后,日志服务会自动展开该 JSON 内容。
- 设置为 JSON 类型后,针对非完全合法的 JSON 格式内容,日志服务支持解析合法部分。
- 设置为 JSON 类型后,如果需要对 JSON 对象中的子字段进行进一步分析,则可以为子字段单独建立索引,索引数据类型可选 text、long 或 double。设置后,检索分析时的粒度可以精确到子字段,提高子字段的检索分析速度,但同时也会产生额外的索引费用。
说明
- 日志服务支持为 JSON 对象中的子字段建立索引,但不建议为包含子字段的子字段建立索引。若您为 JSON 对象中嵌套 JSON 对象建立索引,日志服务将把该子字段处的 JSON 对象值序列化成字符串处理。
- 日志服务不支持值为 JSON 数组的字段建立索引,也不支持为 JSON 数组中的字段建立索引。
配置示例
JSON 自动索引和手动配置索引的区别?
操作 | 说明 |
---|
为 JSON 父字段开启自动索引及统计功能 | 已添加部分二级字段索引的场景 | - JSON 父字段无键值索引和统计功能,即不支持检索和 SQL 分析。
- 手动配置的二级字段有索引和统计功能,即支持检索与 SQL 分析。
- 其他由系统自动创建索引的子字段,有键值索引但无统计功能,即支持检索但不支持 SQL 分析。
|
未添加二级字段索引的场景 | - JSON 父字段无键值索引,但具备统计功能,即不支持键值检索但支持 SQL 分析。
- 其他由系统自动创建索引的子字段,有键值索引但无统计功能,即支持检索但不支持 SQL 分析。
|
为 JSON 父字段开启统计但关闭自动索引功能 | 已添加部分二级字段索引的场景 | - JSON 父字段无键值索引和统计功能,即不支持检索和 SQL 分析。
- 手动配置的二级字段有索引和统计功能,即支持检索与 SQL 分析。
|
未添加二级字段索引的场景 | JSON 父字段有键值索引和统计功能,即支持检索与 SQL 分析。 |