要按相关性对MySQL全文搜索进行布尔模式排序,可以使用MySQL的MATCH AGAINST语句来执行全文搜索,并使用布尔模式进行排序。
以下是一个示例的解决方法:
CREATE TABLE products (
id INT PRIMARY KEY,
name VARCHAR(100),
description TEXT,
FULLTEXT (name, description)
);
INSERT INTO products (id, name, description)
VALUES (1, 'Apple', 'A juicy fruit'),
(2, 'Orange', 'A citrus fruit'),
(3, 'Banana', 'A yellow fruit');
SELECT id, name, description,
MATCH(name, description) AGAINST('fruit') AS relevance
FROM products
WHERE MATCH(name, description) AGAINST('fruit' IN BOOLEAN MODE)
ORDER BY relevance DESC;
在上述示例中,我们使用了MATCH AGAINST语句来执行全文搜索。我们在WHERE子句中使用MATCH AGAINST语句来指定搜索条件,并在ORDER BY子句中使用MATCH AGAINST语句的结果作为排序依据。
结果将按照相关性降序排列,相关性值越高,表示匹配度越高。
注意:在使用MATCH AGAINST语句进行全文搜索之前,确保已经为表创建了全文索引。
上一篇:按相关性/排名对搜索结果进行排序