首页 文章

mysql全文搜索问题

提问于
浏览
0

嘿,有一个小问题,我不太了解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;

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

但是,当我改变MATCH条款时:MATCH( Headers ,文章),我得到零结果 . 基本上,我只在一个专栏中遇到了MATCH .

这是posts表的表格模式:(这是来自导出)

创建TA BLE 帖子(
id int(55)unsigned NOT NULL auto_increment,
title varchar(255)collate latin1_german2_ci默认为NULL,
article text collate latin1_german2_ci,
post_type varchar(255)collate latin1_german2_ci默认为NULL,
day text collate latin1_german2_ci,
user varchar(55)collate latin1_german2_ci默认为NULL,
month text collate 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)collate latin1_german2_ci默认为NULL,
event_month varchar(255)collate 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 回答

  • 5

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

    FULLTEXT KEY title_article_fx (title, article)
    

相关问题