php - 与 Cake php 一起实现 Sphinx API 的问题

标签 php cakephp full-text-search sphinx

我正在做一个项目,我需要用 Cake php 实现 SphinxSearch。所以我只是想在其中使用一个组件和行为。它的链接是:-

http://bakery.cakephp.org/articles/eugenioclrc/2010/07/10/sphinx-component-and-behavior

我正在请求如下所示的 Sphinx API:

$sphinx = array('matchMode' => SPH_MATCH_ALL, 'sortMode' => array(SPH_SORT_EXTENDED => '@relevance DESC'));

$results = $this->ModelName->find('all', array('search' => 'Search_Query', 'sphinx' => $sphinx));

pr($result);

对于上面它工作正常,但是当我试图最小化查询表的特定字段的响应时间(使用扩展匹配模式,即 SPH_MATCH_EXTENDED2)时,Sphinx 只是无法输出任何结果。我使用的扩展查询如下:-

$sphinx = array('matchMode' => SPH_MATCH_EXTENDED2, 'sortMode' => array(SPH_SORT_EXTENDED => '@relevance DESC'));

$results = $this->ModelName->find('all', array('search' => '@Field_name Search_Query', 'sphinx' => $sphinx));

pr($results);

谁能认出我哪里出错了?如果我哪里出错了,请帮忙。

提前致谢。

最佳答案

顺便说一句,当您使用 EXTENDED2 模式时,请确保您的 rank 模式已相应设置。

编辑:

不管怎样回到你的问题,看看你可以马上看到的组件/行为代码,没有进行任何错误检查。尝试稍微更改代码,这样您至少可以看到错误和/或警告。

组件

if(!isset($query['search'])){ 
  $result = self::$sphinx->Query('', $indexes);     
} else { 
  $result = self::$sphinx->Query($query['search'], $indexes); 
}

if ($result === false) {
  // throw new SphinxException();
  die(self::$sphinx->GetLastError());
}
$warn = self::$sphinx->GetLastWarning();
if ($warn) echo $warn;

行为

$result=$this->runtime[$model->alias]['sphinx']->search($s);
if ($result === false) {
  die($this->runtime[$model->alias]['sphinx']->GetLastError());
}
$warn = $this->runtime[$model->alias]['sphinx']->GetLastWarning();
if ($warn) echo $warn;

希望对您有所帮助。

关于php - 与 Cake php 一起实现 Sphinx API 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097951/

相关文章:

PHP - MYSQL ZingChart 时间提前7小时

php - CakePHP 我的逻辑正确吗?

sql - 使用 cakephp 在递归查找中指定字段

regex - 匹配最长重复序列的正则表达式

sql - 带子字符串的 PostgreSQL 全文搜索

java - 如何使用 Github API 列出所有 Github android 项目?

php - 如何在 where() 函数中给出条件以获得不等于表中的零记录

php - 在 php 中动态更改 css?

PHP/MySQL - 日期时间未正确插入

css - 如果 .htaccess 文件写入正确,服务器在服务器中而不是在本地主机中给出 404 错误