[英]MySQL Fulltext search across multiple tables with differentiated ranking
我目前有3个表格(街区,城市,州),并且尝试列出给定搜索字词的前10个最佳匹配项(如果不是实际匹配项)。 我需要做的是拥有一个邻域名称匹配项,使其排名高于城市名称匹配项。 令我困惑的是,如果它找到一个邻居,我需要它来给我这个邻居,城市和州,但是如果它是一个城市,就给我城市和州。
这就是我目前所拥有的,这给了我城市比赛的机会。 我如何才能将邻里融合到这些结果中?
SELECT c.id_city, c.city_name, s.state_abbreviation,
MATCH(c.city_name) AGAINST ('term') AS score
FROM `res_geo_cities` AS c, `res_geo_states` AS s
WHERE MATCH(c.city_name) AGAINST ('term' IN BOOLEAN MODE)
AND s.id_state = c.id_state
ORDER BY score DESC
LIMIT 7
对不同的查询使用并,并按等级对其进行排序。
(query1)UNION(query2)ORDER BY得分DESC
保持查询中字段的数量相同和顺序相同。 -http://dev.mysql.com/doc/refman/5.0/en/union.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.