繁体   English   中英

MySQL全文搜索具有差异排名的多个表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM