Поиск номера телефона с PHP/MySQL - Наиболее успешная практика?

Я надеюсь строить yellowpages-esque поисковую систему, используя PHP и базу данных MySQL. Эта база данных, очевидно, хранит имена, адреса, и самое главное, номера телефона. Я буду побуждать пользователя выбирать, какой тип поиска они выполняют так, я могу точно чистить и обращаться с входом. Для имен/адресов я, по всей вероятности, осуществлю Полнотекстовый поиск, поскольку это кажется самым соответствующим?

Для Номеров телефона, однако, я буду хранить их максимально чисто (цифровые символы только, никакой пробел - т.е. (07) 55 200 314 не был бы сохранен как 0755200314). Я задавался вопросом, есть ли наиболее успешная практика для поиска просто чисел (т.е. простое КАК '% $search %')? Это - мое понимание, что Полнотекстовый поиск MySQL не соответствующий, потому что это потребовало бы, чтобы пользователь ввел весь номер телефона не только частичное (который я предназначаю при обеспечении матчей для).

Любой вход по этой теме значительно ценился бы.

1
добавлено
Просмотры: 1
Жаль, но... Вы хотите осуществить поиск телефона подстроки? Как в, все телефоны, которые содержат 123?
добавлено автор Álvaro González, источник
Я могу предложить использовать функции PHP для этого.
добавлено автор laxonline, источник
Á lvaroG.Vicario - поиск только назовут после минимального входа 5-6 цифр (длина номера телефона варьируется от 8-10 цифр),
добавлено автор Zam, источник

2 ответы

Не перестраивайте колесо: используйте производство готовые и хорошо протестированные решения как http://sphinxsearch.com/ или некоторые другие средства поиска. Ваша база данных похожа на редкое изменение, но огромный в размере - инструменты внесут его в указатель однажды и затем позволят вам писать прочные вопросы для частичных матчей, игнорируя опечатки, сложные запросы с результатами, сортированными таможенными весами и т.д. и т.д.

1
добавлено
you' право ре, база данных будет абсолютно крупной в размере и довольно статичной. Я знаю о Сфинксе, но никогда не использовал его сам, но действительно ли это подходит для всех типов данных (текст, varchar, интервал)?edit: Просто сделал немного чтения, Сфинкс только, кажется, работает над Последовательностями. There' s никакая врожденная проблема, хранящая чистые числа как varchar/text?
добавлено автор Zam, источник

Поскольку звонит КАК '2134%' , вы не должны FULLTEXT индекс. Это использует обычный BTREE индекс. Таким образом, пользователь должен ввести правильный номер телефона с самого начала.

Также FULLTEXT поиск подразумевает ограничения на длину слова. Не меньше, что 4 случайных работы (, если я не ошибающийся ). И это не соответствующее решение искать номера телефона.

Если я сделал ошибку в номере телефона как: истинное число 333-15-14 и ввод данных пользователем 332-15-14 , прямо после 332 у нас уже есть другое число, другой диапазон, и это не будет соответствовать желаемым.

0
добавлено