使用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 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。

相关内容

  • 没有找到相关文章

最新更新