搜索算法或工具,用于从数据库中搜索

时间:2012-11-21 23:35:58

标签: php mysql search search-engine

我有这个数据库表:

Column       Type

source       text            
news_id      int(12)             
heading      text            
body         text        
source_url   tinytext
time         timestamp
news_pic     char(100) 
location     char(128)
tags         text
time_created timestamp
hits         int(10)

现在我正在搜索一个算法或工具来搜索此表中包含新闻数据的关键字。应在标题,正文,标签和新闻点击次数中搜索关键字,以获得最佳效果。

1 个答案:

答案 0 :(得分:3)

MySQL已经拥有内置的工具:全文搜索。我将假设你知道如何使用PHP与MySQL交互。如果没有,请先考虑一下。无论如何...

1)将全文索引添加到要搜索的字段中:

alter table TABLE_NAME add fulltext(heading);
alter table TABLE_NAME add fulltext(body);
alter table TABLE_NAME add fulltext(tags);

2)使用match ... against语句执行全文搜索:

select * from TABLE_NAME where match(heading, body, tags, hits) against ('SEARCH_STRING');

显然,在这些示例中,将TABLE_NAME的名称替换为SEARCH_STRING的搜索字符串。

我不明白你为什么要搜索点击次数,因为它只是一个整数。但是,您可以通过在查询中添加order子句来按排序:

select * from TABLE_NAME where match(heading, body, tags, hits) against ('SEARCH_STRING') order by hits desc;