我在数据库中有一个表,其中包含包含关键字和其他数据的记录。创建一个搜索功能,允许人们根据关键字进行搜索,并根据匹配关键字的数量排序结果,这一逻辑方法是什么?
Mysql提供FULLTEXT
搜索选项。查看此链接mysql全文搜索。这些搜索结果将根据最佳匹配进行排序。它还支持布尔模式和自然语言模式(默认)。您需要在搜索列上添加FULLTEXT
索引。
以下是适用于您的查询。
SELECT *, MATCH (ab,cd) AGAINST ('sample text' IN BOOLEAN MODE) AS relevancy
FROM table_name
WHERE MATCH (ab,cd) AGAINST ('sample text' IN BOOLEAN MODE)
ORDER BY relevancy DESC;