文档说明

搜索测试工具

Quest 是搜索测试工具,提供了搜索相关的各项功能,非常适合用于前期测试比较和纠错。 运行脚本工具的 --help 选项可查看内置的帮助和说明,如乱码可在选项后加入 -c gbk 试试。

$prefix/sdk/php/util/Quest.php --help
1. 主要参数和选项

和索引工具类似,使用前必须先指定的项目名称或配置文件,所有的操作都将是作用于该项目, 主要选项如下:

  • -p|--project <name|file> 指定项目名称或配置文件路径,参数名可以省略不写, 如果仅指定项目名称,那么将使用 $prefix/sdk/php/app/.ini 文件。

  • -c|--charset <gbk|utf-8> 指定当前环境、查询语句的字符集,默认情况下, 搜索工具输出的字符集为 utf-8,并把搜索语句字符集视为项目的默认字符集。

  • -q|--query <..query..> 指定要搜索的查询语句,如果语句中包含空格请用使用双引号包围起来。

  • --hot[=total|last|cur] 用于显示指定项目的热门搜索词,此时 query 参数无意义。 选项值含义分别表示总搜索量、上周搜索量、本周搜索量,默认为总搜索量。

  • --suggest--correct--related 是搭配 query 的一些功能选项。

  • --limit=<..num..> 用于设置各种检索功能的返回数量最大上限,默认值均为 10 个。 对于普通搜索模式,还支持用 --limit=offset,num 来同时指定偏移量和上限。

  • -d|--db <name[,name2 ...]> 指定要搜索的数据库名称,默认是名为 db 的库, 多个库之间用逗号分隔。

  • --show-query 在搜索结果显示内部的 Xapian 结构的 query 语句用于调试

  • --synonym 启用自动同义词搜索,这依赖于您的同义词库设置

2. 经典用法示例

以下是一些经典用法举例:

# 搜索 demo 中包含 "测试" 的数据
util/Quest.php demo 测试

# 搜索 demo 中包含 "测试" 的数据,并限制最多返回 2 条结果
util/Quest.php -p demo -q 测试 --limit=2

# 列出 demo 项目中以 "x" 开头的搜索建议
util/Quest.php --suggest demo x

# 在 demo 项目中修正搜索词 "xm"
util/Quest.php --correct demo xm

# 在 demo 中列出和 "测试" 相关的搜索词
util/Quest.php --related demo 测试

# 查看 demo 项目上周的 5 条最热门搜索词
util/Quest.php --hot=last --limit=5 demo
3. 查看同义词表

使用 --list-synonyms 可以列出当前库的全部同义词记录,此选项不需要带参数。 但特殊参数值 stemmed 表示同时列出隐藏的词根同义词。结合选项 --limit 可以设置返回的数量和偏移量,默认只返回前 100 个。例如:

# 默认查看当前库的前 100 个同义词记录
util/Quest.php demo --list-synonyms 

# 查看当前库第 6~10 条同义词记录
util/Quest.php demo --list-synonyms --limit 5,5

# 查看包含隐藏同义词根在内的记录
util/Quest.php demo --list-synonyms=stemmed

Tip: 同义词功能是 1.3.0 版本引入的新功能,详情参见同义词专题文档。 添加、删除同义词的功能请参见 Indexer 索引工具

词根同义词是自动生成的,以大写字母 Z 开头,请勿试图进行删除

$Id$

2条评论!

#28 报告
董笑鸣 at 2013-06-03 08:40:53
文档写的太粗略了

XSException ../lib/XS.php(2349): Connection refused(C#111, localhost:8384)

0 ../lib/XS.php(2172): XSServer->connect()

1 ../lib/XS.php(1324): XSServer->open('8384')

2 ../lib/XS.php(2158): XSSearch->open('8384')

3 ../lib/XS.php(356): XSServer->__construct('8384', Object(XS))

4 ../lib/XS.php(253): XS->getSearch()

5 Quest.php(106): XSComponent->__get('search')

6 {main}

这到底是成功了还是失败了?有没有人能指导一下?

#26 报告
llkk0914 at 2013-03-04 20:22:36
返回什么样的结果就是正确呢

执行以后,返回什么结果是正确的结果呢 /usr/local/xunsearch/sdk/php/util/Quest.php -p demo -c gbk -q 桌面 --limit=2 返回 Object id #10

0 ../lib/XS.php(2246): XSServer->read(8)

1 ../lib/XS.php(2231): XSServer->getRespond()

2 ../lib/XS.php(2208): XSServer->execCommand(Array, 201)

3 ../lib/XS.php(2169): XSServer->setProject('cms_51cto')

4 ../lib/XS.php(1312): XSServer->open(8384)

5 ../lib/XS.php(2152): XSSearch->open(8384)

6 ../lib/XS.php(356): XSServer->__construct(8384, Object(XS))

7 ../lib/XS.php(253): XS->getSearch()

8 Quest.php(106): XSComponent->__get('search')

9 {main}

这个结果正确吗

请到论坛 登录 后刷新本页面!