4.8.searchd查询日志格式
优质
小牛编辑
140浏览
2023-12-01
searchd
将全部成功执行的搜索查询都记录在查询日志文件中。以下是一个类似记录文件的例子:
[Fri Jun 29 21:17:58 2007] 0.004 sec [all/0/rel 35254 (0,20)] [lj] test [Fri Jun 29 21:20:34 2007] 0.024 sec [all/0/rel 19886 (0,20) @channel_id] [lj] test
日志格式如下
[query-date] query-time [match-mode/filters-count/sort-mode total-matches (offset,limit) @groupby-attr] [index-name] query
匹配模式(match-mode)可以是如下值之一
- "all" 代表 SPH_MATCH_ALL 模式;
- "any" 代表 SPH_MATCH_ANY 模式;
- "phr" 代表 SPH_MATCH_PHRASE 模式;
- "bool" 代表 SPH_MATCH_BOOLEAN 模式;
- "ext" 代表 SPH_MATCH_EXTENDED 模式;
- "ext2" 代表 SPH_MATCH_EXTENDED2 模式;
- "scan" 代表使用了完整扫描模式,这可能是由于设置了SPH_MATCH_FULLSCAN模式导致的,也可能是因为查询是空的。 (参见文档匹配模式)
排序模式(sort-mode)可以取如下值之一:
- "rel" 代表 SPH_SORT_RELEVANCE 模式;
- "attr-" 代表 SPH_SORT_ATTR_DESC 模式;
- "attr+" 代表 SPH_SORT_ATTR_ASC 模式;
- "tsegs" 代表 SPH_SORT_TIME_SEGMENTS 模式;
- "ext" 代表 SPH_SORT_EXTENDED 模式.
此外,如果searchd
启动的时候带参数--iostats
,那么在列出被搜索的全部索引后还会给出一块数据。.
一个查询日志项看起来就像这样:
[Fri Jun 29 21:17:58 2007] 0.004 sec [all/0/rel 35254 (0,20)] [lj] [ios=6 kb=111.1 ms=0.5] test
多出来的这块数据是关于搜索中执行的I/O操作的信息,包括执行的I/O操作次数、从索引文件中读取数据的kb数和I/O操作占用的时间(尽管这个时间还包括一个后台处理组件所占用的,但主要是I/O时间)