我有这个数据库表:
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)
现在我正在搜索一个算法或工具来搜索此表中包含新闻数据的关键字。应在标题,正文,标签和新闻点击次数中搜索关键字,以获得最佳效果。
答案 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;