查询语法

<p>本文主要介绍查询日志的语法及举例,以便您快速使用查询语法快速查找日志。</p> <p><span style="font-size:18px"><strong>查询语法</strong></span></p> <p>平安金融云日志服务支持如下查询语法:</p> <p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20191107140035-13d794369934.png" style="height:26px; margin:0px; width:65px" />:</p> <ol> <li>运算符必须大写。</li> <li>运算符两侧的查询关键词区分大小写。</li> <li>( )内的查询语句优先级最高,其次查询语句按照从左到右的顺序执行。</li> </ol> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>参数</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>说明</strong></p> </td> </tr> <tr> <td style="vertical-align:top"> <p>OR</p> </td> <td style="vertical-align:top"> <p>查询条件的并集,格式为:query1 OR query2。</p> <p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20191107140035-13d794369934.png" style="height:26px; margin:0px; width:65px" />:如果多个关键词之间没有语法关键词,默认多个关键词是OR&nbsp;的关系。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>AND</p> </td> <td style="vertical-align:top"> <p>查询条件的交集,格式为:query1 AND query2。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>NOT</p> </td> <td style="vertical-align:top"> <p>符合query1,但不符合query2,格式为:query1 NOT query2。</p> <p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20191107140035-13d794369934.png" style="height:26px; margin:0px; width:65px" />:如果只有NOT query1,表示从全部日志中搜索不符合query1的日志。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>(,)</p> </td> <td style="vertical-align:top"> <p>将括号内多个关键词,合并成一个关键词,主要用于提升括号内多个关键词的优先级。</p> <p>例如:(source:HOST1 OR source:HOST2)AND &ldquo;hello world&rdquo;</p> <p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20191107140035-13d794369934.png" style="height:26px; margin:0px; width:65px" />:( , )均为英文括号和逗号。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>:</p> </td> <td style="vertical-align:top"> <p>用于键值对(key-value)查询。如果 key 或者 value 内有空格 、 : _ -等保留字符时,需要用双引号&quot;&quot;把整个 key 或者 value 包括起来。</p> <p>例如:(appname:<em>project-name</em>,source:<em>source-name</em>)</p> <p>或 file:&ldquo;/tmp/log/hello world.txt&rdquo;。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>&quot;&quot;</p> </td> <td style="vertical-align:top"> <p>把语法关键词转换为普通查询关键词,英文格式。</p> <p>双引号内部的任何一个 term 都会被查询,而不会当成语法关键词。或者在 key-value 查询中把左右引号内的所有 term 当成一个整体。</p> <p>例如:</p> <ul> <li>appname:abs表示搜索appname字段的值是abs的日志。</li> <li>&ldquo;appname:abs&rdquo; 表明搜索message字段的值是appname:abs的日志。</li> </ul> </td> </tr> <tr> <td style="vertical-align:top"> <p>\</p> </td> <td style="vertical-align:top"> <p>转义符。转义后的云算符表示符号本身,而非运算符。</p> <p>例如:\: 表示冒号,而非运算符。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>&gt;&nbsp;</p> </td> <td style="vertical-align:top"> <p>待查询内容为double或long类型时,查询关键词大于某个数值的日志。</p> <p>例如:查询Nginx日志时,request_time&gt;100。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>&gt;=</p> </td> <td style="vertical-align:top"> <p>待查询内容为double或long类型时,查询关键词大于等于某个数值的日志。</p> <p>例如:查询Nginx日志时,request_time&gt;=100。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>==</p> </td> <td style="vertical-align:top"> <p>待查询内容为double或long类型时,查询关键词等于某个数值的日志。</p> <p>例如:查询Nginx日志时,request_time==100。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>&lt;&nbsp;</p> </td> <td style="vertical-align:top"> <p>待查询内容为double或long类型时,查询关键词小于某个数值的日志。</p> <p>例如:查询Nginx日志时,request_time&lt;100。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>&lt;=</p> </td> <td style="vertical-align:top"> <p>待查询内容为double或long类型时,查询关键词小于等于某个数值的日志。</p> <p>例如:查询Nginx日志时,request_time&lt;=100。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>?</p> </td> <td style="vertical-align:top"> <p>模糊查询关键词,可放在关键词的中间或结尾,用于替代一个字符。</p> <p>例如:he?lo,会返回以he开头,以lo结尾,并且中间还有一个字符的所有日志。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>*</p> </td> <td style="vertical-align:top"> <p>模糊查询关键词,可放在关键词的中间或结尾,用于替代 0 个或多个字符。</p> <p>例如:que*,会返回包含que&nbsp;的所有日志。</p> </td> </tr> </tbody> </table> <p><strong><span style="font-size:18px">查询语法举例</span></strong></p> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="background-color:#ededed; vertical-align:top"> <p><strong>参数</strong></p> </td> <td style="background-color:#ededed; vertical-align:top"> <p><strong>说明</strong></p> </td> </tr> <tr> <td style="vertical-align:top"> <p>a OR b</p> </td> <td style="vertical-align:top"> <p>查询包含a或者包含b的日志。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>a AND b</p> </td> <td style="vertical-align:top"> <p>查询包含a和包含b的日志。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>a NOT b</p> </td> <td style="vertical-align:top"> <p>查询包含a但是不包含b的日志。</p> </td> </tr> <tr> <td style="vertical-align:top"> <p>NOT a</p> </td> <td style="vertical-align:top"> <p>查询不包含a的日志。</p> </td> </tr> <tr> <td> <p>a AND b NOT c</p> </td> <td style="vertical-align:top"> <p>查询包含a且包含b,但不包括c的日志。</p> </td> </tr> <tr> <td> <p>(a OR b) AND c</p> </td> <td style="vertical-align:top"> <p>查询包含a或者包含b,且一定包含c的日志。</p> </td> </tr> <tr> <td> <p>(a OR b) OR c</p> </td> <td style="vertical-align:top"> <p>查询包含a或者包含b,但不包括c的日志。</p> </td> </tr> <tr> <td> <p>a AND b OR c</p> </td> <td style="vertical-align:top"> <p>查询包含a且包含b,可能包含c的日志。</p> </td> </tr> <tr> <td> <p>message: hello OR message: world</p> </td> <td style="vertical-align:top"> <p>查询message字段包含 hello 或者message字段包含world 的日志。</p> </td> </tr> <tr> <td> <p>\&quot;</p> </td> <td style="vertical-align:top"> <p>查询包括引号的日志。</p> </td> </tr> <tr> <td> <p>/[a-z_0-9]*test[a-z_0-9]*/</p> </td> <td style="vertical-align:top"> <p>查询以任意位小写字母或数字开头,包含test,以任意位小写字母或数据字结尾的日志。</p> </td> </tr> <tr> <td> <p>&quot;CPU phone&quot;</p> </td> <td style="vertical-align:top"> <p>查询包含CPU phone的日志。</p> </td> </tr> <tr> <td> <p>appname:logcloud_test*</p> </td> <td> <p>查询appname以logcloud_test开始的所有日志。</p> </td> </tr> <tr> <td> <p>appname:logcloud_test??</p> </td> <td> <p>查询appname以logcloud_test开始且后面有两个字符的所有日志。</p> </td> </tr> <tr> <td> <p>appname:/[a-z_0-9]*test[a-z_0-9]*/</p> </td> <td> <p>查询appname以任意位小写字母数字开头包含test并且以任意位小写字母和数字结尾的所有日志。</p> </td> </tr> </tbody> </table>
以上内容是否解决了您的问题?
请补全提交信息!
联系我们

电话咨询

400-151-8800

邮件咨询

fincloud@ocft.com

在线客服

工单支持

解决云产品相关技术问题