0

我有一张满是域名的表格。我想做一个返回某种相关性结果的搜索。我的问题是,如果我搜索“cool”,我希望它返回“cooldomain.com”,除非我做错了,否则全文搜索不会。

有没有我不知道的全文选项可以实现这一点?如果没有,我将如何去做?

4

4 回答 4

0

您需要为您的表设置一个 FULLTEXT 索引,然后执行以下操作:

SELECT *, MATCH(domain_name) AGAINST ('{search term here}' IN BOOLEAN MODE) as Relevance 
FROM domains 
WHERE MATCH (domain_name) AGAINST('{search term here}' IN BOOLEAN MODE) 
ORDER BY Relevance DESC
于 2009-08-05T04:44:13.273 回答
0

Good oldWHERE domain LIKE '%cool%'会匹配,但不会返回“相关性”——我不确定你会如何定义它。

于 2009-06-12T22:33:37.797 回答
0

尝试类似的东西

SELECT * FROM domains WHERE domain_name LIKE 'cool%';
于 2009-06-12T22:37:09.600 回答
0

我会在这里使用 LIKE,全文搜索用于匹配完整的单词或表达式,查询扩展等。而且我认为*运算符只能在使用 MATCH 时用作后缀,所以你会错过 imcool.com...

我认为您必须收集更多信息才能进行相关性排序。

编辑: 如果要使用索引,还可以将域的单词存储在另一列中,并在此列上使用全文搜索的功能...

于 2009-06-12T22:40:56.687 回答