我有一个充满域名的表。我想做一个返回某种相关性结果的搜索。我的问题是,如果我搜索“酷”,我希望它返回“cooldomain.com”,这是一个全文搜索,除非我做错了,不会。
是否有任何我不知道的全文选项可以实现这一目标?如果没有,我将如何去做呢?
答案 0 :(得分:0)
好的旧WHERE domain LIKE '%cool%'
会匹配,但不会返回“相关性” - 我不确定你是如何定义它的。
答案 1 :(得分:0)
尝试类似
的内容SELECT * FROM domains WHERE domain_name LIKE 'cool%';
答案 2 :(得分:0)
我在这里使用LIKE,全文搜索用于匹配完整的单词或表达式,查询扩展等。我认为*
operator只能在使用MATCH时用作后缀,所以你会想念imcool.com ......
我认为你必须收集更多信息才能进行相关性排序。
修改 如果你想使用索引,你也可以将域的单词存储在另一列中,并使用全文搜索功能...
答案 3 :(得分: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