全文搜索,没有结果?

时间:2012-06-09 19:54:23

标签: php mysql algorithm codeigniter search

我正在尝试使用matchagainstfulltext indexing来实施数据库搜索。因此,当我进行搜索时,它没有按预期工作,没有错误,也没有给出结果。我正在使用Codeigniter查询。

这是我的PHP查询代码:

$clean_keyword = trim($keywords); //$keyword is passed to the function`
$this->db->select('question, answer')
         ->from('QA')
         ->where('MATCH(question) AGAINST("'.$clean_keyword.'")', null, FALSE);  
$query = $this->db->get(); //execute the previous statement and save the result in a variable. 

没有给出codeigniter / MySQL的错误。

我尝试通过$query调试var_dump($query)变量,查看结果( NB重要部分是result_array size=0 ) :

object(CI_DB_mysql_result)[19]
  public 'conn_id' => resource(30, mysql link persistent)
  public 'result_id' => resource(38, mysql result)
  public 'result_array' => 
    array (size=0)
      empty
  public 'result_object' => 
    array (size=0)
      empty
  public 'custom_result_object' => 
    array (size=0)
      empty
  public 'current_row' => int 0
  public 'num_rows' => int 0
  public 'row_data' => null

MySQL表架构:

CREATE TABLE `QA` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `question` varchar(200) CHARACTER SET utf8 NOT NULL,
  `answer` varchar(500) CHARACTER SET utf8 NOT NULL,
  `u_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `question` (`question`)
) ENGINE=MyISAM

1 个答案:

答案 0 :(得分:1)

我的代码/数据库架构或其他任何内容都没有错误,我只是意识到FULLTEXT search没有显示仅包含1个字的匹配项,例如:
如果我问这个:
SELECT * FROM QA WHERE MATCH(question) AGAINST('drive');
并且只有drive这个词有一个问题,生病没有匹配 但如果我改变了drive问题专栏,那就像how to drive那样得到匹配。