У меня есть таблица InnoDB с именем Product, подобная этой:
MariaDB [learn_fts]> select * from product;
+------------+-----------------------------+--------------+
| product_id | product_name | product_size |
+------------+-----------------------------+--------------+
| 1 | Something 90 Fishy Thing | 1-1/2" |
| 2 | Very 90 Fishy Thing | 2" |
| 3 | Not Another 45 Fishy Thing | 3" x 2" |
| 4 | Yet Another 90 Fishy Thing | 4" x 2" |
| 5 | Oh 90 Fishy Thing | 3/4" |
| 6 | No 45 Fishy Thing | 4" |
| 7 | Just Another 45 Fishy Thing | 2" x 1" |
| 8 | Fishy 45 Fishy Thing | 3/4" |
+------------+-----------------------------+--------------+
Когда я выполняю этот запрос SELECT *, MATCH (
product_name ,
product_size ) AGAINST ('fishy 90 3/4"' IN NATURAL LANGUAGE MODE) AS
оценка FROM
продукт ORDER BY
оценкаDESC;
Я получил этот результат
+------------+-----------------------------+--------------+----------------------------+
| product_id | product_name | product_size | score |
+------------+-----------------------------+--------------+----------------------------+
| 1 | Something 90 Fishy Thing | 1-1/2" | 0.0906190574169159 |
| 2 | Very 90 Fishy Thing | 2" | 0.0906190574169159 |
| 4 | Yet Another 90 Fishy Thing | 4" x 2" | 0.0906190574169159 |
| 5 | Oh 90 Fishy Thing | 3/4" | 0.0906190574169159 |
| 8 | Fishy 45 Fishy Thing | 3/4" | 0.000000003771856604828372 |
| 3 | Not Another 45 Fishy Thing | 3" x 2" | 0.000000001885928302414186 |
| 6 | No 45 Fishy Thing | 4" | 0.000000001885928302414186 |
| 7 | Just Another 45 Fishy Thing | 2" x 1" | 0.000000001885928302414186 |
+------------+-----------------------------+--------------+----------------------------+
Как сделать номер продукта нет. 5 получили лучший результат, так как это самый релевантный продукт в таблице? Я попытался установить переменную innodb_ft_min_token_size в 1, как предложено в этой старой теме Mysql для поиска строки и числа с использованием MATCH () AGAINST () , но все равно не помогает.
Пожалуйстасовет. Спасибо