按标签搜索域名?

时间:2011-01-21 09:33:59

标签: php mysql database-design

我确实有100k个域及其相关标签。

我希望按标签搜索域名。例如,google.com域名为search,google,searchengine,engine,web,reference个标记

bing.com也与search,bing,searchengine,engine,web一样,我有多达100k个域及其相关标签。

标准1

如果我使用标签search,google,searchengine,engine,web,reference进行搜索,那么两个域google.combing.com都应显示在最终结果中。

标准2

如果我使用代码search,searchengine,engine,web进行搜索,那么结果<{1}}和google.com两个域都会出现在结果中

标准3

如果我使用标签bing.com进行搜索,则应同时显示两个域。

标准4

如果仅标记search,searchengine,则还需要显示两个域。

标准5

如何使用标记对结果进行优先级排序,如果我使用标记search进行搜索,那么search,google,searchengine,engine,web,reference应该先出现,google.com成为第二个

最后为了实现所有这些结果,我应该如何设计我的表以及如何查询表?

谢谢

1 个答案:

答案 0 :(得分:0)

您需要至少有两列domain_name varchar(400), tags text - 您需要确保所有标记都以逗号分隔。

现在,您将tags作为FULLTEXT类型的索引进行全文搜索。请参阅此处以获取说明http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

在一个快速的谷歌上,有许多帖子利用MySQL文本搜索来获得按相关性排序的相关结果。 (希望这是你想要的)。

这里有一个这样的例子http://www.pui.ch/phred/archives/2005/05/tags-with-mysql-fulltext.html它显示了处理标签搜索的各种方法。