Полный текст MySQL не точный - PullRequest
0 голосов
/ 07 мая 2018

У меня есть таблица с идентификатором, темой, описанием, URL-адресом изображения в виде столбцов. Записи типа

id   topic               description    image_url
1    People and blogs    TownHall       http://...
2    People and blogs 2  ......         .......
3    Blogs               .......        .......
4    Good                ......         ......

Когда я ищу блоги в качестве запроса

SELECT * FROM people 
WHERE MATCH(topic,descript) AGAINST ("blogs" WITH QUERY EXPANSION)

Я получаю результаты как

1  People and blogs    TownHall    http://.../
2  People and blogs 2  ......      ......./
3  Blogs               .......     ......./

3-я строка должна стоять первой, поскольку это точное слово (блоги), а остальная часть строки должна идти после этого ..

Пожалуйста, помогите мне в отладке.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Попробуйте ниже SQL, это решит вашу проблему.

SELECT people.*
  FROM people
order by MATCH(topic,descript) AGAINST ("blogs" WITH QUERY EXPANSION) asc;

ВЫВОД:

+------+--------------------+-------------+
| id   | topic              | descript    |
+------+--------------------+-------------+
|    3 | Blogs              | ........    |
|    2 | People and blogs 2 | ........    |
|    1 | People and blogs   | TownHall    |
+------+--------------------+-------------+
0 голосов
/ 07 мая 2018

Попробуйте что-то вроде:

SELECT * FROM people, 
MATCH(topic,descript) AGAINST ("blogs" WITH QUERY EXPANSION) AS score
WHERE score > 0
ORDER BY score DESC
...