[英]Make a full-text search with zend framework 2
我有一個名為“ 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 Zend\Db\Sql\Sql($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 \Zend\Db\Sql\Expression(
"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 Zend\Db\ResultSet\ResultSet();
$rowset->initialize($result);
$rows = $rowset->toArray();
如何使用zf2進行全文搜索?
我認為這是進行全文搜索的正確方法。 但是,我想我缺少了一些東西。
老實說,我是zend Framework 2的新手。但是我正在盡力做到這一點。 我希望有人知道如何進行這樣的搜索。
提前致謝。
首先,全文索引僅適用於MySQL 5.6.4及更高版本中的InnoDB引擎,因此除非您希望在使用除少數幾行以外的任何內容時降低性能,否則需要確保使用MySQL 5.6.4。或以上。
話雖如此,我仍然建議不要使用MySQL進行全文搜索。 我建議您考慮使用專為執行全文搜索而設計的搜索服務器。 諸如Elasticsearch,Apache Solr或Sphinx之類的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.