索引是一种存储结构,用于对日志数据中的一列或多列进行排序。您只有配置索引后,才能进行查询和分析操作。不同的索引配置,会产生不同的查询和分析结果,请根据您的需求,合理配置索引。

前提条件

已采集日志。更多信息,请参见数据采集

索引类型

日志服务的索引类型如下:

索引类型 说明
全文索引 日志服务根据您设置的分词符将整条日志拆分成多个词并构建索引。在查询时,字段名称(KEY)和字段值(Value)都是普通文本。例如查询语句error,表示查询包含error关键字的日志。
字段索引 配置字段索引后,您可以指定字段名称和字段值(Key:Value)进行查询,缩小查询范围。例如查询语句level:error,表示查询level字段值包含error的日志。

如果您要使用分析功能,必须配置字段索引且开启对应字段的统计功能。开启统计功能不会产生额外的索引流量和索引存储空间。

注意
  • 开启索引后会产生索引流量和索引存储空间,费用说明请参见计量项和计费项
  • 配置索引后,只对新写入的日志数据生效。如果您要查询和分析历史数据,请使用重建索引功能。具体操作,请参见重建索引
  • 如果同时配置了全文索引和字段索引,以字段索引的配置为准。
  • 日志服务默认已为部分保留字段配置索引。更多信息,请参见保留字段。其中__topic____source__的索引分词符为空,查询这两个字段时,查询关键字必须完全匹配。

配置全文索引

  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。
  3. 日志存储 > 日志库页签中,单击目标Logstore。
  4. 在Logstore的查询和分析页面,选择查询分析属性 > 属性
    如果您还未开启索引,请单击开启索引
  5. 配置索引。
    参数 说明
    日志聚类 打开日志聚类开关后,在采集文本日志时日志服务会自动聚合相似度高的日志,提取共同的日志模式,帮助您快速掌握日志整体情况。更多信息,请参见日志聚类
    全文索引 打开全文索引开关,表示开启全文索引功能。
    大小写敏感 查询时是否区分英文字母的大小写。
    • 打开大小写敏感开关,则查询时区分大小写。例如某条日志含有internalError,那么您只能使用internalError才能查询到该日志。
    • 关闭大小写敏感开关,则查询时不区分大小写。例如某条日志含有internalError,那么您使用关键字INTERNALERRORinternalerror都能查到该日志。
    包含中文 查询时是否区分中英文。
    • 打开包含中文开关后,如果日志中包含中文,则按照中文语法拆分中文内容,按照分词符配置拆分英文内容。
      注意 中文分词对写入速度会有一定影响,请根据需求谨慎设置。
    • 关闭包含中文开关后,按照分词符配置拆分所有内容。
    例如日志内容为user:SLS日志服务用户张先生
    • 关闭包含中文开关后,按照分词符冒号(:)进行拆分,日志会被拆分为userSLS日志服务用户张先生,您可以通过userSLS日志服务用户张先生查找该日志。
    • 打开包含中文开关后,日志服务后台分词器将日志拆分为userSLS日志服务用户张先生,您通过日志服务张先生等词都可以查找到该日志。
    分词符 根据指定分词符,将日志内容拆分成多个词。分词符包括, '";=()[]{}?@&<>/:\n\t\r,其中\n表示换行符,\t表示制表符,\r表示回车符。
    例如日志内容为/url/pic/abc.gif
    • 如果不设置任何分词符,整条日志被作为一个词/url/pic/abc.gif,您只能通过完整字符串/url/pic/abc.gif或模糊查询/url/pic/*查找该日志。
    • 如果设置分词符为正斜线(/),则原始日志被拆分为urlpicabc.gif三个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如urlabc.gifpi*/url/pic/abc.gif
    • 如果设置分词符为正斜线(/)和英文句点(.),则原始日志被拆分为urlpicabcgif四个词。
  6. 单击确定,完成配置。
    配置索引后,在1分钟之内生效。

配置字段索引

  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。
  3. 日志存储 > 日志库页签中,单击目标Logstore。
  4. 在Logstore的查询和分析页面,选择查询分析属性 > 属性
    如果您还未开启索引,请单击开启索引
  5. 查询分析页面,配置索引。
    参数 说明
    字段名称 日志字段名称(KEY),例如client_ip
    说明
    • 如果配置公网IP地址、Unix时间戳等Tag字段的索引,请将字段名称配置为__tag__:KEY形式,例如:__tag__:__receive_time__。更多信息,请参见保留字段
    • Tag字段不支持数值类型索引,请将所有Tag字段的索引的类型配置为text
    类型 日志字段值(Value)的数据类型,可选值为text、long、double和json。更多信息,请参见数据类型
    说明 long类型和double类型不支持设置大小写敏感包含中文分词符
    别名 列的别名,例如ip

    别名仅用于分析语句,查询时仍需使用原始字段名称。更多信息,请参见列的别名

    大小写敏感 查询时是否区分英文字母大小写。
    • 打开大小写敏感开关,则查询时区分大小写。例如某条日志含有internalError,那么您只能使用internalError才能查询到该日志。
    • 关闭大小写敏感开关,则查询时不区分大小写。例如某条日志含有internalError,那么您使用关键字INTERNALERRORinternalerror都能查到该日志。
    分词符 根据指定分词符,将日志内容拆分成多个词。分词符包括, '";=()[]{}?@&<>/:\n\t\r,其中\n表示换行符,\t表示制表符,\r表示回车符。
    例如日志内容为/url/pic/abc.gif
    • 如果不设置任何分词符,整条日志被作为一个词/url/pic/abc.gif,您只能通过完整字符串/url/pic/abc.gif或模糊查询/url/pic/*查找该日志。
    • 如果设置分词符为正斜线(/),则原始日志被拆分为urlpicabc.gif三个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如urlabc.gifpi*/url/pic/abc.gif
    • 如果设置分词符为正斜线(/)和英文句点(.),则原始日志被拆分为urlpicabcgif四个词。
    包含中文 查询时是否区分中英文。
    • 打开包含中文开关后,如果日志中包含中文,则按照中文语法拆分中文内容,按照分词符配置拆分英文内容。
      注意 中文分词对写入速度会有一定影响,请根据需求谨慎设置。
    • 关闭包含中文开关后,按照分词符配置拆分所有内容。
    例如日志内容为user:SLS日志服务用户张先生
    • 关闭包含中文开关后,按照分词符冒号(:)进行拆分,日志会被拆分为userSLS日志服务用户张先生,您可以通过userSLS日志服务用户张先生查找该日志。
    • 打开包含中文开关后,日志服务后台分词器将日志拆分为userSLS日志服务用户张先生,您通过日志服务张先生等词都可以查找到该日志。
    开启统计 打开开启统计功能后,您才能使用分析功能。
  6. 单击确定,完成配置。
    配置索引后,在1分钟之内生效。