我有以下代码:
$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;
根据他们的文档,类似的语法@(field_1,field_2) query
应该返回与 or 中的字符串匹配query
的field_1
文档field_2
。
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
. 不过,这并不是我真正想要的,因为它会在所有领域进行搜索。