【发布时间】:2013-08-15 01:57:08
【问题描述】:
我有以下代码:
$this->api = new App_Other_SphinxSearch();
$this->api->SetServer($host, $port);
$this->api->SetConnectTimeout(1);
$this->api->SetArrayResult(true);
$results = $this->api->Query("@(title,content) test", 'members');
echo "<pre>";print_r($results);die;
根据their documentation,像@(field_1,field_2) query 这样的语法应该返回与field_1 或field_2 中的字符串query 匹配的文档。
PHP SDK 返回完全不同的东西:
Array
(
[error] =>
[warning] =>
[status] => 0
[fields] => Array
(
[0] => title
[1] => content
)
[attrs] => Array
(
[created] => 2
[content] => 7
)
[total] => 0
[total_found] => 0
[time] => 0.000
[words] => Array
(
[title] => Array
(
[docs] => 10
[hits] => 34
)
[content] => Array
(
[docs] => 34
[hits] => 139
)
[test] => Array
(
[docs] => 26
[hits] => 34
)
)
)
数组中没有matches 键,但是它得到了一些命中。我真的不明白为什么会发生这种情况,特别是因为如果我从命令行尝试相同的查询,一切正常。
有什么帮助吗?
编辑: 像这样的查询虽然有效:@* test。不过,这并不是我真正想要的,因为它会在所有领域进行搜索。
【问题讨论】: