搜索日志管理
Logger
是搜索日志管理工具,针对搜索日志关键词提供查询、删除、更新、刷新、清空等功能。
Tip: 热门搜索、相关搜索、拼音搜索、搜索纠错和建议这些功能都是基于搜索日志来实现的。 搜索日志是后台自动分析和生成的,所以可能存在一些偏差和错误,您可借助本工具处理。
运行脚本工具的 —help 选项可查看内置的帮助和说明,如乱码可在选项后加入 -c gbk 试试。
- $prefix/sdk/php/util/Logger.php --help
1. 主要参数和选项要使用日志工具,必须先指定的项目名称或配置文件,所有的操作都将是作用于该项目,主要选项如下:
-p|—project
指定项目名称或配置文件路径,参数名可以省略不写,如果仅指定项目名称,那么将使用 $prefix/sdk/php/app/.ini 文件。 -c|—charset
指定当前环境、数据源的字符集,默认情况下,索引工具输出的字符集为 utf-8,并把数据源字符集视为项目的默认字符集。 —import=<..file..> 导入搜索日志文件,每行一个词,每行的数据中可以用\t(Tab键)分开指定次数,没有次数默认为1。
—put=
添加、更新搜索日志词汇,词与次数之间用半角冒号分隔,默认为 1 次。多个词之间用,(半角)分隔,词之间如果包含空格,请将参数用引号包围起来。 —del=
删除搜索日志中的关键词记录,删除多个词汇用半角逗号分隔,若不存在则会提示相关词 —query=<..word..> 以 word 为关键词列出相关搜索词,可用 limit 选项设置个数,默认 6 个
—hot=
列出热门搜索词,参数依次表示总次数、上期次数、本期次数,可用 limit 指定个数,默认 10 个。 —limit=<..num..> 用于控制 query 和 hot 选项的返回记录数量
—flush 强制提交搜索日志变动
—clean 清空搜索日志全部内容2. 经典用法示例以下是一些常见用法举例:
- # 查看 demo 项目中 热门搜索词
- util/Logger.php demo
- util/Logger.php demo --hot=cur
- # 查询 demo 项目中 "word" 相关搜索词汇
- util/Logger.php demo word
- util/Logger.php demo word --limit 5
- # 把日志文件 words.txt 导入 dmeo 项目中
- util/Logger.php --import=words.txt demo
- # 清空 demo 项目中 全部搜索日志索引,通常在重建搜索项目或日志数据过于混乱时才需调用
- util/Logger.php --clean demo
3. 导入搜索日志文件当您有大批搜索日志词汇需要一并更新时,用 —put
可能力不从心了,我们特别提供了—import
选项用于导入搜索日志文件。
搜索日志文件必须是 UTF-8
编码,如果不是请在使用前转换好。文件格式为一行一个词,每个词后面可以用制表符 \t
隔开写上搜索次数,默认则为 1 次。以半角的 ;
和 #
开头的行表示注释。以下为示范文件内容:
- # 这行表示注释,被忽略
- 更新词
- 更新词2 123
导入的用法很简单,只要用 —import
指定路径即可,导入过程中会依次打印每个词的情况,命令如下:
- util/Logger.php --import=/path/to/words.txt demo
4. 删除搜索词热门搜索、相关搜索通常是自动处理的,但如果你不希望出现某些词,可以用 —del
选项删除这些词。选项的值表示要删除的词,多个词之间用半角的逗号分隔,如果搜索词包含空格,请使用半角引号包围选项值。用法如下:
- # 删除 demo 项目中 搜索日志词 word
- util/Logger.php --del=word demo
- # 删除 demo 项目中 搜索日志词 word 和 "word1 word2"
- util/Logger.php --del "word,word1 word2" demo
5. 添加/更新搜索词您可以用 —put
选项快速添加、更新少量几个搜索词,常用于替换热门搜索词。选项的值表示要更新或添加的词,词后面可以用半角的冒号连接搜索次数,若不指定默认为 1 次。多个词之间用半角的逗号分隔,词汇中包含空格则注意采用引号包围。用法举例:
- # 在 demo 项目中 添加搜索词 word 次数为 1
- util/Logger.php --put=word demo
- # 在 demo 项目中 添加搜索词 word 次数为 123,添加搜索词 "word1 word2" 次数为 456
- util/Logger.php --put="word:123,word1 word2:456" demo
Note: 删除、更新、导入搜索词都是异步行为,也就是说执行完命令后需要等待一段时间才能生效。