cakephp中的全文搜索?任何例子 [英] FULL TEXT SEARCH in cakephp ? any example

查看:210
本文介绍了cakephp中的全文搜索?任何例子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在业务控制器中使用普通的搜索功能。但
现在需要实现带有页面的全文搜索功能,任何人都可以提供想法或样本?
我在MyISAM tabes上使用MySQL

I am using ordinary search functionality in my business controller . but now need to implement FULL TEXT SEARCH with paginate can any one give idea or sample ? I am using MySQL with MyISAM tabes

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

and this my table structure, fields marked bold are need to use in search

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; 


推荐答案

创建了你的 FULLTEXT 指数与普通的分页条件不同,你只需要更手动地构造你的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();

这篇关于cakephp中的全文搜索?任何例子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆