mysql全文搜索问题

时间:2011-02-20 10:25:37

标签: php mysql

嘿,有一个小问题,我不太了解MYSQL全文搜索。 我有这个:

 $data = mysql_query("SELECT * FROM posts WHERE MATCH (article) AGAINST ('news')"); 

 while($result = mysql_fetch_array( $data )) 
 { 
 echo $result['title']; 
 echo "<br><br> "; 
 echo $result['article']; 
 echo "<br><br>"; 
 } 

 $anymatches=mysql_num_rows($data); 
 if ($anymatches == 0) 
 { 
 echo "Sorry, but we can not find an entry to match your query<br><br>"; 
 } 

 echo "<b>Searched For:</b> " .$search_term; 

这很好用。它从数据库中提取标题和文章,并回显出数据库中每个项目的所有信息。只从'文章'columnthough中提取信息.....(如果“新闻”仅在标题中,则不会在结果中显示。) 反之亦然。如果我查询MATCH(标题),它只会在标题中找到带有给定搜索词的帖子,而不是文章

然而,当我改变MATCH条款时:MATCH(标题,文章),我得到零结果。基本上,我只把MATCH加到了一列。

这是posts表的表格架构: (这是来自出口)

创建TA BLE帖子(
  id int(55)unsigned NOT NULL auto_increment,
  title varchar(255)collat​​e latin1_german2_ci默认为NULL,
  article文本整理latin1_german2_ci,
  post_type varchar(255)collat​​e latin1_german2_ci默认为NULL,
  day文本整理latin1_german2_ci,
  user varchar(55)collat​​e latin1_german2_ci默认为NULL,
  month文本整理latin1_german2_ci,
  year int(4)默认为NULL,
  member_id int(55)默认为NULL,
  published tinyint(1)NOT NULL默认为'0',
  draft tinyint(1)默认为'0',
  slug varchar(255)collat​​e latin1_german2_ci默认为NULL,
  event_month varchar(255)collat​​e latin1_german2_ci默认为NULL,
  event_day1 int(2)默认为NULL,
  event_day2 int(2)默认为NULL,
  PRIMARY KEY(id),
  FULLTEXT KEY titletitle),
  FULLTEXT KEY articlearticle
)ENGINE = MyISAM;

任何人都知道为什么它不希望第二列看到?

1 个答案:

答案 0 :(得分:5)

在两个字段上定义全文索引:

FULLTEXT KEY title_article_fx (title, article)
相关问题