我有一个名为"app_curso"的表
它是这样的:
表格
CREATE TABLE `app_curso` (
`cur_id` int(11) NOT NULL AUTO_INCREMENT,
`cur_nombre` varchar(255) DEFAULT NULL,
PRIMARY KEY (`cur_id`),
FULLTEXT KEY `cur_nombre` (`cur_nombre`),
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
我想在"cur_nombre"字段中进行全文搜索。我正在尝试使用这部分代码。
服务
$query = $_GET['q'];
$page = $_GET['page'];
// This is the object where I get all DB references
global $db;
$sql = new ZendDbSqlSql($db);
$select = $sql->select();
$select->from('app_curso');
// Here is where I want to make the search but it doesn't work
$select->columns(array(new ZendDbSqlExpression(
"MATCH(column) AGAINST('Query') AS curso")))
->where("MATCH(cur_nombre) AGAINST(".$query." in boolean mode)");
$selectString = $sql->getSqlStringForSqlObject($select);
$result = $db->query($selectString, $db::QUERY_MODE_EXECUTE);
$rowset = new ZendDbResultSetResultSet();
$rowset->initialize($result);
$rows = $rowset->toArray();
如何使用zf2进行全文搜索
我认为这是正确的方式如何进行全文搜索;然而,我想我错过了什么。
老实说,我是zend框架2的新手。但我正在尽我最大的努力来处理这件事。我希望有人知道如何进行这样的搜索。
提前谢谢。
首先,全文索引仅适用于MySQL 5.6.4及更高版本中的InnoDB引擎,因此,除非您在使用超过几行的内容时想要严重的性能,否则您需要确保使用的是MySQL 5.6.4或更高版本。
话虽如此,我仍然建议不要使用MySQL进行全文搜索。我建议您考虑使用专为执行全文搜索而设计的搜索服务器。类似Elasticsearch、Apache Solr或Sphinx。