日志服务提供短语查询,用于精准匹配指定的短语。本文介绍短语查询的基本功能、语法、使用限制和示例。
日志服务支持短语查询和非短语查询,详细说明如下表所示:
查询类型 | 说明 |
---|---|
非短语查询 | 采用分词法进行关键词匹配,即根据索引分词符将短语拆分为各个独立的关键词并进行检索。 |
短语查询 | 精准匹配包含指定短语的日志。 |
短语查询使用井号(#)作为标识符。详细说明,如下表所示:
说明
此处以分隔符为空格为例。
查询方式 | 短语查询语法 | 非短语查询语法 |
---|---|---|
键值检索 |
|
|
全文检索 |
|
|
短语查询的基本原理如下:
#"abc def"
,实际后端先执行 abc AND def
语句,完成分词匹配。说明
为避免数据量过大,执行短语查询时,日志服务后端将限制步骤 1 最多返回 10,000 条结果。
not #"abc def"
。#"abc def" | select ***
。因此使用短语查询时,也不支持快速分析功能。当您执行一次翻页操作时,日志服务会对应执行一次短语查询,用于确保查询结果的连续性。
每次进行短语查询时,最多取 10,000 条日志进行短语匹配。在翻页操作过程中,可能出现某一页所显示的日志数量少于每页指定要显示的日志数量但仍可以向后翻页。此时说明符合非短语查询语句的日志数量多于 10,000 条,但在当前短语查询的 10,000 条日志中,满足短语查询条件的日志数量少于指定要显示的日志数量。
例如日志总数为 40,000 条,并且指定每页显示 100 条日志。当您执行一次短语查询后,当前页面仅显示 40 条日志却仍可以进行向后翻页操作,则表示当前 10,000 条日志中仅有 40 条日志满足短语查询条件。当您继续执行翻页操作时,日志服务会自动在后续的 10,000 条日志中,执行第二次短语查询,并返回符合条件的日志。
查询包含 open failed
的日志。非短语查询和短语查询这两种方式的结果如下所示。
说明
本示例已开启全文索引且索引分词符包含空格。关于索引的详细说明,请参考配置索引。
"open failed"
语句,那么同时包含 open
和 failed
的日志都将被查询到。#"open failed"
语句,日志服务将匹配完整的短语 open failed
。查询 content
字段值中包含 "code":1
的日志。非短语查询和短语查询这两种方式的结果如下所示。
说明
content
字段的键值索引且索引分词符包含半角冒号(:)。关于索引的详细说明,请参考配置索引。\"code\"
。content: "\"code\":1"
语句,那么 content
字段值中同时包含关键词 code
和 1
的日志都将被查询到,不能确保精准匹配 "code":1
的日志。content: #"\"code\":1"
语句,日志服务将精准匹配 content
字段中完整的短语 "code":1
。