Я пытаюсь выбрать продукты, используя MATCH AGAINST
в MySQL.Запрос с MATCH AGAINST строка возвращает более строгое равенство строке
Название имеет длину, указанную в качестве одной цифры плюс буквы m
для счетчиков, т.е. 1m
, 2m
, 5m
и т.д.
Когда я пытаюсь соответствовать 5m network cable
с ниже запросом, он также возвращает 0.5m network cable
, 1.5m network cable
и т. д.
Как я могу получить точное слово MATCH
на 2 символьной строке?
Мой запрос:
SELECT title, category, price
FROM products_table
USE index (prod_idx)
WHERE (MATCH (title) AGAINST ('+"5m" +"network" +"cable"' IN BOOLEAN MODE))
Я не эксперт в SQL, поэтому у меня нет ответа, но может быть, что '1.5m cable' не выбран, потому что он содержит' 5m', но поскольку он содержит 'cable', в противном случае вы можете иметь операцию * OR *, а не желаемую * и *. – mins
нет опыта MATCH AGAINST, но некоторые из них содержат полное текстовое индексирование и то, что появляется в моем сознании, состоит в том, что знак '.' интерпретируется как конец предложения, а не десятичный знак. Отсюда ваши результаты. Однако не знаю, как настроить mysql для этого. Возможно, язык? – tgo
Также существует проблема полнотекстового поиска коротких слов, которые игнорируются. На всякий случай. [MySQL Полнотекстовый поиск - поиск коротких слов] (http://stackoverflow.com/questions/8301586/mysql-full-text-search-search-for-short-words) – mins