问题
我的表中有 5 个项目[1],每个项目有 4 个属性(红、绿、蓝、黄)。
每个属性的分数可以在 1 到 9 之间[2]。
在我的网站上执行搜索时,用户可以通过为每个属性提供 1 到 9 之间的分数来指定每个属性与搜索结果的相关程度。
我应该使用什么算法来根据用户偏好计算和排序结果?
资源
[1] - 创建表项( id INT NOT NULL AUTO_INCRMENT ,名称 VARCHAR(128) ,红色 INT ,绿色 INT ,蓝色 INT ,黄色 INT ,主键(id) );
[2] - 插入项目(名称、红色、绿色、蓝色、黄色)值 ('随机 1', 4, 1, 9, 4), ('随机2', 1, 1, 2, 9), ('随机 3', 5, 7, 6, 3), ('随机 4', 2, 2, 8, 1);
最佳答案
将搜索标点符号计算为字段并按其对查询进行排序
SELECT *, (red * @rw) AS w1, (green * @gw) AS w2, (blue* @bw) AS w3, (yellow * @yw) AS w4, (w1 + w2 + w3 + w4) AS result
FROM items ORDER BY result DESC;
@rw => 红色权重,@bw => 蓝色权重,等等...
关于php - PHP 的加权搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7473592/