我确实有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.com
和bing.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
成为第二个
最后为了实现所有这些结果,我应该如何设计我的表以及如何查询表?
谢谢
答案 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它显示了处理标签搜索的各种方法。