我已多次重新审视这个问题,而且我从未真正找到合适的答案.
是否可以执行MySQL搜索,通过相关性返回ACTUAL准确排序的结果?
我正在尝试创建一个ajax搜索表单,它在用户输入到输入字段时提出建议,并且仅使用纯MySQL查询找不到合适的解决方案.我知道有可用的搜索服务器,例如ElasticSearch,我想知道如何只使用原始MySQL查询.
我有一张学校科目表.行数不到1200行,这永远不会改变.让我们执行一个基本的FULLTEXT搜索,用户开始输入"Bio".
查询("Bio ...") - FULLTEXT BOOLEAN MODE
SELECT name, MATCH(name) AGAINST('bio*' IN BOOLEAN MODE) AS relevance
FROM subjects
WHERE MATCH(name) AGAINST('bio*' IN BOOLEAN MODE)
ORDER BY relevance DESC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
结果
name | relevance
--------------------------------------------------------
Biomechanics, Biomaterials and Prosthetics | 1
Applied Biology | 1
Behavioural Biology | 1
Cell Biology | 1
Applied Cell Biology | 1
Developmental/Reproductive Biology | 1
Developmental Biology | 1
Reproductive Biology | 1
Environmental Biology | 1
Marine/Freshwater Biology | …Run Code Online (Sandbox Code Playgroud)