Получение ТОЧНЫХ совпадений из полнотекстового поиска вернулось первым? - PullRequest
0 голосов
/ 28 августа 2011

Я использую приведенный ниже код, например:

SELECT *, (MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) AS score FROM `example_table` WHERE MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) order by score DESC;

Однако, несмотря на то, что в столбце wm существуют совпадения EXACT, совпадение EXACT не отображается до 8-го результата. У тех, кто впереди этого, тоже есть фраза, но есть и следующий текст. Я проверил поля locn, gns, чтобы увидеть, как они сравниваются, и на самом деле ничего не выделяется, что могло бы повысить рейтинг других.

Я читал об использовании BOOLEAN MODE, но ничего из того, что я читал там, не казалось, что это поможет моим потребностям.

1 Ответ

2 голосов
/ 29 августа 2011

Хорошо, если это поможет кому-то еще, я смог бы добиться того, чего хотел, выполнив следующее:

SELECT *, 
  CASE WHEN wm = 'foot locker' THEN 1 ELSE 0 END AS score, 
  MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker') AS score2 
FROM 
  `example_table` 
WHERE 
  MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) 
ORDER BY
  score DESC, score2 DESC;
...