Задавайте вопросы, мы ответим
Вы не зашли.
Есть вопрос к специалистам.
Как одновременно использовать кавычки (для использования - в поиске) и звездочку
Что-то вроде SELECT FROM `table` WHERE MATCH (`field`) AGAINST ('+"8-924"*' IN BOOLEAN MODE)
Заранее благодарен
Отредактированно verybadbug (28.07.2011 07:13:09)
Неактивен
Если я правильно понимаю, то Вы хотите представить телефон в виде строки
для полнотекстового поиска, и кавычки Вам нужны для того, чтобы строки были
в правильном порядке. Так делать не следует Лучше фиксировать формат и
искать обычным LIKE с % в хвосте. Или даже записывать, как DECIMAL.
Почему не следует делать:
1. Потому что такого формата, который Вы ищете, нет (чтобы еще и честно
ответить на Ваш вопрос)
2. Потому что слово «8» короче, чем минимальная длина слова полнотексто-
вого поиска (а если уменьшить длину слова, оно станет стопсловом).
3. Потому что 8-38-8-924.
Можно еще много придумать Полнотекстовый индекс предназначен для текстов,
а не для телефонов.
Неактивен
Мне необходим поиск ПО ТЕКСТУ (слово может находиться в середине текста), в котором встречаются слова, написанные через "-" (номера телефонов например, фамилии, названия и много другого). Если делать при помощи LIKE, то '%что-то-там%' не есть хорошо, сами знаете почему.
Спросил про телефоны, потому что с остальным вопросов не возникает.
Менять исходники mysql и файлы настроек (дабы изменить "-" на другой символ) - не предлагать.
Неактивен
Пробовал заменить "-" на "#"
SET GLOBAL `ft_boolean_syntax`='+ #><()~*:""&|'
почему-то тоже не помогает, хотя переменная ft_boolean_syntax изменяется. Есть какие-нибудь идеи?
Неактивен
ft_boolean_syntax — это всего лишь отображение операторов в команде
(т.е. теперь вместо -blah у Вас будет работать #blah), но повлиять на то,
чтобы «-» считался буквой Вы так не сможете.
Боюсь, что в этом случае у Вас только два пути:
1. Делать отдельную табличку (колонку?), в которую записывать найден-
ные телефоны при добавлении новых строк. Эдакий своеобразный теле-
фонный индекс.
2. Второй способ Вы просили не предлагать
Неактивен