【问题标题】:Sphinx Search Api SPH_MATCH_EXTENDED not working狮身人面像搜索 API SPH_MATCH_EXTENDED 不起作用
【发布时间】:2014-01-09 09:55:15
【问题描述】:

我有以下 PHP 脚本,并且正在使用 sphinx 搜索 API。我想在 MySQL 数据库的标题栏中搜索自定义关键字。

$s = new SphinxClient;
$s->setServer("localhost", 9312);
$s->setMatchMode(SPH_MATCH_EXTENDED);
$s->SetLimits(0, 10000);
$result = $s->Query("@(title) apple"); 

不幸的是,只有当我使用以下脚本时,这才返回:

$s = new SphinxClient;
$s->setServer("localhost", 9312);
$s->setMatchMode(SPH_MATCH_EXTENDED);
$s->SetLimits(0, 10000);
$result = $s->Query("apple"); 

我得到结果,问题是脚本在所有列中搜索。

我做错了什么?

我还应该提到,在 localhost(使用 XAMPP)上它可以像第一个示例一样正常工作。

【问题讨论】:

  • 你检查 getLastError(), getLastWarning() 了吗?他们经常告诉你为什么查询会失败。
  • 不,我在你告诉我之后检查了它,这就是它所说的:查询错误:在架构中找不到字段“标题”
  • 是的,但我不明白,我的数据库中有标题和内容,而且在我的源索引中,sql_query 看起来像这样 sql_query = SELECT ID, title, content, description, date added FROM feeds

标签: php mysql search sphinx


【解决方案1】:

我确实注意到一件事,您没有明确指出要搜索的 哪个 索引 - 因此 Query() 搜索所有索引。

大概然后在一台服务器上,您有一个不包含@title 的索引。

...为了最大的兼容性(所以不管其他索引添加到服务器,应该搜索一个特定的索引...

$s->Query("@(title) apple",'my_index'); 

【讨论】:

    猜你喜欢
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2012-05-06
    • 1970-01-01
    相关资源
    最近更新 更多