繁体   English   中英

mysql全文搜索问题

[英]mysql fulltext search problem

嘿,我对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; 

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

但是,当我也更改了MATCH子句时:MATCH(标题,文章),我得到的结果为零。 基本上,我只将MATCHING限制在一列。

这是我的posts表的表架构:(这是从导出中获得的)

创建TA BLE帖子(
id int(55)unsigned NOT NULL auto_increment,
title varchar(255)整理latin1_german2_ci默认为NULL,
article文字整理latin1_german2_ci,
post_type varchar(255)整理latin1_german2_ci默认为NULL,
day文本整理latin1_german2_ci,
user varchar(55)整理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)整理latin1_german2_ci默认为NULL,
event_month varchar(255)整理latin1_german2_ci默认为NULL,
event_day1 int(2)默认为NULL,
event_day2 int(2)默认为NULL,
主键( id ),
FULLTEXT KEY titletitle ),
FULLTEXT KEY articlearticle
)ENGINE = MyISAM;

任何人都知道为什么不希望浏览第二列吗?

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

FULLTEXT KEY title_article_fx (title, article)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM