在cakephp中搜索全文?任何例子

AnN*_*LaI 7 full-text-search cakephp-1.3 cakephp-2.0

我在我的业务控制器中使用普通搜索功能.但是现在需要用paginate实现FULL TEXT SEARCH可以任何人给出想法或样本吗?我正在使用MySQL和MyISAM标签

这个我的表结构,标记为粗体的字段需要在搜索中使用

CREATE TABLE IF NOT EXISTS businesses ( 
  id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
  created date NOT NULL, 
  modified datetime NOT NULL, 
  user_id bigint(20) NOT NULL, 
  slug varchar(255) NOT NULL, 
  **`name` varchar(255) NOT NULL,** 
  **street_name varchar(255) DEFAULT NULL,** 
  **shopping_center varchar(255) DEFAULT NULL,** 
  state_id int(10) NOT NULL, 
  suburb_id int(10) NOT NULL, 
  zip_code varchar(12) DEFAULT NULL, 
  website varchar(250) DEFAULT NULL, 
  email varchar(255) DEFAULT NULL, 
  phone_no varchar(255) NOT NULL, 
  mobile_no varchar(255) DEFAULT NULL, 
  fax varchar(255) DEFAULT NULL, 
  is_active tinyint(1) NOT NULL DEFAULT '1', 
  PRIMARY KEY (id) 
) ENGINE=MyISAM  DEFAULT CHARSET=latin1; 
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 9

你之后创建了FULLTEXT索引它不是从正常PAGINATE条件的不同,在所有的,你只需要更多的手动有点构建你的SQL,最重要的手动逃跑用户输入.

$query = 'foobar'; // the user input to search for
$escapedQuery = $this->Business->getDataSource()->value($query);

$this->paginate['conditions'] = array("MATCH (Business.name) AGAINST ($escapedQuery)");
$businesses = $this->paginate();
Run Code Online (Sandbox Code Playgroud)

  • [阅读"MATCH ... AGAINST`"的文档(http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html#function_match)并相应地构建索引和查询. (2认同)