MySQL полнотекстовый поиск по нескольким таблицам с дифференцированным ранжированием - PullRequest
1 голос
/ 14 октября 2010

В настоящее время у меня есть 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

1 Ответ

1 голос
/ 14 октября 2010

Используйте union для различных запросов и упорядочите их по рангу.

(query1) UNION (query2) ORDER BY счет DESC

оставьте одинаковыми номера полей в запросах итот же порядок.- http://dev.mysql.com/doc/refman/5.0/en/union.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...