索引是一种倒排的数据存储结构,由关键词和指向实际数据的逻辑指针组成,用于快速根据关键词定位到具体数据行,类似于数据的目录。您只有创建索引后,才能进行查询和分析操作。
前提条件
已采集日志。具体操作,请参见数据采集。
重要 进行日志分析前,需要先将日志采集到Standard Logstore中。更多信息,请参见管理Logstore。
注意事项
若当前Logstore的计费模式为按写入数据量计费时,创建索引不产生费用。具体内容,可参见按写入数据量计费。
-
若当前Logstore的计费模式为按使用功能计费时,创建索引会产生索引流量和索引存储空间,费用说明请参见按使用功能计费模式计费项。
-
索引配置(新增、编辑、删除字段,修改配置项等操作)只对新写入的日志生效。如果您要查询和分析历史日志,请重建索引。具体操作,请参见重建索引。
-
关闭索引后,历史索引的存储空间将在当前Logstore的数据保存时间到期后,自动被清除。
-
日志服务默认已为部分保留字段创建索引。更多信息,请参见保留字段。
其中
__topic__
和__source__
的索引分词符为空,查询这两个字段时,查询关键字必须完全匹配。 -
__tag__为前缀的字段不支持全文索引。您需要创建字段索引后,才能执行查询和分析操作,例如
*| select "__tag__:__receive_time__"
。 -
不同的索引配置,会产生不同的查询和分析结果,请根据您的需求,合理创建索引。如果您同时创建了全文索引和字段索引,以字段索引的配置为准。
-
日志中存在同名字段(例如都为request_time)时,则日志服务会将其中一个字段名显示为request_time_0,底层存储的字段名仍为request_time。因此您在创建索引、查询、分析、投递、加工时,只能使用原始字段名request_time。
索引类型
重要
如果您要使用分析功能(SELECT语句),必须创建字段索引且打开对应字段的开启统计开关。开启统计功能不会产生额外的索引流量和索引存储空间。
日志服务的索引类型如下所示。
-
全文索引
日志服务根据您设置的分词符将整条日志拆分成多个词并构建索引。在查询时,字段名称(KEY)和字段值(Value)都是普通文本。例如查询语句
error
,表示查询包含error
关键字的日志。 -
字段索引
创建字段索引后,您可以指定字段名称和字段值(Key:Value)进行查询,缩小查询范围。例如查询语句
level:error
,表示查询level
字段值包含error
的日志。
索引流量
创建索引后,会产生索引流量。
索引类型 |
说明 |
全文索引 |
所有字段名和字段值都将作为text类型存储,即字段名和字段值都被计入在索引流量中。 |
字段索引 |
不同数据类型的字段的索引流量计算方式不同。
|
操作视频
您可以参见如下视频创建索引。
创建全文索引
- 登录日志服务控制台。
- 在Project列表区域,单击目标Project。
- 在日志存储 > 日志库页签中,单击目标Logstore。
进入创建索引页面。
-
如果您还未创建索引,请在Logstore的查询和分析页面,单击开启索引。
-
如果您已创建索引,请在Logstore的查询和分析页面,选择查询分析属性 > 属性。
-
-
在查询分析面板中,配置如下参数,然后单击确定。
重要
创建索引后,在1分钟之内生效。
参数
说明
日志聚类
打开日志聚类开关后,日志服务在采集文本日志时会自动聚合相似度高的日志,提取共同的日志模式,帮助您快速掌握日志整体情况。更多信息,请参见日志聚类。
全文索引
打开全文索引开关,表示创建全文索引。
大小写敏感
查询时是否区分英文字母的大小写。
-
打开大小写敏感开关,则查询时区分大小写。例如某条日志含有
internalError
,那么您只能使用internalError
才能查询到该日志。 -
关闭大小写敏感开关,则查询时不区分大小写。例如某条日志含有
internalError
,那么您使用关键字INTERNALERROR
和internalerror
都能查到该日志。
包含中文
查询时是否区分中英文。
-
打开包含中文开关后,如果日志中包含中文,则按照中文语法拆分中文内容,按照分词符的设置拆分英文内容。
重要
中文分词对写入速度会有一定影响,请根据需求谨慎设置。
-
关闭包含中文开关后,按照分词符的设置拆分所有内容。
例如日志内容为user:SLS日志服务用户张先生。
-
关闭包含中文开关后,按照分词符半角冒号(:)进行拆分,日志会被拆分为
user
、SLS日志服务用户张先生
,您可以通过user
或SLS日志服务用户张先生
查找该日志。 -
打开包含中文开关后,日志服务后台分词器将日志拆分为
user
、SLS
、日志服务
、用户
和张先生
,您通过日志服务
或张先生
等词都可以查找到该日志。
分词符
根据指定分词符,将日志内容拆分成多个词。日志服务的默认分词符为
, '";=()[]{}?@&/:
。当默认设置不能满足您的需求时,您可以自定义设置分词符。所有的ASCII码都可被定义为分词符。
\r如果设置分词符为空,则字段值将被当成一个整体,您只能通过完整字符串或模糊查询查找对应的日志。
例如日志内容为
/url/pic/abc.gif
。-
如果不设置任何分词符,整条日志被作为一个词
/url/pic/abc.gif
,您只能通过完整字符串/url/pic/abc.gif
或模糊查询/url/pic/*
查找该日志。 -
如果设置分词符为正斜线(/),则原始日志被拆分为
url
、pic
和abc.gif
三个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如url
、abc.gif
、pi*
、/url/pic/abc.gif
。 -
如果设置分词符为正斜线(/)和半角句号(.),则原始日志被拆分为
url
、pic
、abc
和gif
四个词,您通过任意一个词或词的模糊查询都可以找到该日志。
-
手动创建字段索引
说明
创建字段索引时,最多添加500个字段。其中JSON类型字段,最多添加100个子字段。
- 登录日志服务控制台。
- 在Project列表区域,单击目标Project。
- 在日志存储 > 日志库页签中,单击目标Logstore。
-
进入创建索引页面。
-
如果您还未创建索引,请在Logstore的查询和分析页面,单击开启索引。
-
如果您已创建索引,请在Logstore的查询和分析页面,选择查询分析属性 > 属性。
-
-
在查询分析面板中,配置如下参数,然后单击确定。
重要
创建索引后,在1分钟之内生效。
参数
说明
字段名称
日志字段名称(KEY),例如client_ip。
字段名称只能包括字母、数字或下划线(_),且只能以字母或下划线(_)开头。
重要
-
设置公网IP地址、Unix时间戳等__tag__字段的索引时,需设置字段名称为__tag__:KEY形式,例如__tag__:__receive_time__。更多信息,请参见保留字段。
-
__tag__字段不支持数值类型索引,请将所有__tag__字段的索引的类型设置为text。
类型
日志字段值(Value)的数据类型,可选值为text、long、double和json。更多信息,请参见数据类型。
long类型和double类型不支持设置大小写敏感、包含中文和分词符。
别名
字段的别名,例如设置client_ip字段的别名为ip。
字段别名只能包括字母、数字或下划线(_),且只能以字母或下划线(_)开头。
重要
别名仅用于分析语句(SELECT语句),查询语句中仍需使用原始字段名称。更多信息,请参见列的别名。
大小写敏感
查询时是否区分英文字母大小写。
-
打开大小写敏感开关,则查询时区分大小写。例如某条日志含有
internalError
,那么您只能使用internalError
才能查询到该日志。 -
关闭大小写敏感开关,则查询时不区分大小写。例如某条日志含有
internalError
,那么您使用关键字INTERNALERROR
和internalerror
都能查到该日志。
分词符
根据指定分词符,将日志内容拆分成多个词。日志服务默认分词符为
, '";=()[]{}?@&/:
。当默认设置不能满足您的需求时,您可以自定义设置分词符。所有的ASCII码都可被定义为分词符。
\r如果设置分词符为空,则字段值将被当成一个整体,您只能通过完整字符串或模糊查询查找对应的日志。
例如日志内容为
/url/pic/abc.gif
。-
如果不设置任何分词符,整条日志被作为一个词
/url/pic/abc.gif
,您只能通过完整字符串/url/pic/abc.gif
或模糊查询/url/pic/*
查找该日志。 -
如果设置分词符为正斜线(/),则原始日志被拆分为
url
、pic
和abc.gif
三个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如url
、abc.gif
、pi*
、/url/pic/abc.gif
。 -
如果设置分词符为正斜线(/)和半角句号(.),则原始日志被拆分为
url
、pic
、abc
和gif
四个词,您通过任意一个词或词的模糊查询都可以找到该日志。
包含中文
查询时是否区分中英文。
-
打开包含中文开关后,如果日志中包含中文,则按照中文语法拆分中文内容,按照分词符的设置拆分英文内容。
重要
中文分词对写入速度会有一定影响,请根据需求谨慎设置。
-
关闭包含中文开关后,按照分词符的设置拆分所有内容。
例如日志内容为user:SLS日志服务用户张先生。
-
关闭包含中文开关后,按照分词符半角冒号(:)进行拆分,日志会被拆分为
user
、SLS日志服务用户张先生
,您可以通过user
或SLS日志服务用户张先生
查找该日志。 -
打开包含中文开关后,日志服务后台分词器将日志拆分为
user
、SLS
、日志服务
、用户
和张先生
,您通过日志服务
或张先生
等词都可以查找到该日志。
开启统计
打开开启统计功能后,您才能对该字段进行统计分析。
-
自动生成字段索引
在创建字段索引时,您可以单击自动生成索引,日志服务会根据采集时预览数据中的第一条内容,自动生成字段索引。
自动更新索引
当Logstore为云产品专属Logstore或内部Logstore时,默认打开索引自动更新开关,后续如有版本更新时可以升级到内置索引最新版本。
警告
删除云产品专属Logstore的索引会影响相关报表、告警等功能的使用。
如果您要自定义设置索引,请在查询分析面板中,关闭自动更新开关。
设置字段值的最大长度
分析时,日志服务默认支持的字段值最大长度为2048字节,即2 KB。如果您需要修改字段值的最大长度,可设置统计字段(text)最大长度,取值范围为64~16384字节。
重要
当单个字段值长度超过最大长度时,超出部分被截断,不参与分析。
API接口
操作 |
API接口 |
创建索引 |
CreateIndex |
删除索引 |
DeleteIndex |
查询索引 |
GetIndex |
更新索引 |
UpdateIndex |
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/163674.html