|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.02.2013, 21:05 | #1 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Поиск по сайту (MySQL)
Всем привет! На нескольких проектах я уже писал поиск по сайту (определенным таблицам из базы), но каждый раз цели немного отличались и приходилось все переписывать с нуля.
Сейчас моя цель - написать скрипт/функцию/класс поиска, который можно прикручивать к другим проектам в зависимости от параметров (таблицы, возвращаемые данные и т. п.) Я еще не приступил к реализации этой идеи, пока думаю над алгоритмом, который будет выдавать результаты в более менее релевантном виде. Пока остановился на на следующей мысли:
Как вам такой вариант? Хотелось бы услышать ваши решения по этому вопросу. Последний раз редактировалось Mr_freeman; 20.02.2013 в 10:31. |
20.02.2013, 10:19 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
да нормально .... можно еще добавить типа ВСЕ слова из фразы чтоб такие документы искал или ЛЮБЫЕ .....Хотя в релевантность попадут все....
.. для релевантности еще надо исключат мелкие слова .... типа союзов итд итп |
20.02.2013, 10:29 | #3 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
А как должен задаваться массив для этого, чтобы хранить в каждом элементе количество совпадений и mysql_fetch_array()? (я кажется не работал еще с такими массивами из "записей")
Тобишь на яваскрипте это было бы что то типа Код:
|
20.02.2013, 10:30 | #4 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
И еще вопрос: какой метод сортировки оптимальней использовать? Обычный пузырек подойдет?
|
20.02.2013, 10:31 | #5 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
неясен вопрос...
если строку разбить в массив - explode() |
20.02.2013, 11:02 | #6 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Ну с первым я разобрался, а строку я разбил вот так
PHP код:
|
20.02.2013, 11:06 | #7 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
тогда в чем вопрос то
|
20.02.2013, 11:11 | #8 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Пока все получается, спасибо. Я еще напишу, если какие то трудности возникнут.
|
20.02.2013, 13:51 | #9 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
Итак, класс готов. С ООП я только начинаю работать, по этому буду рад, если укажите на ошибки в структуре класса или в самом алгоритме. Пока поиск можно осуществлять только по одному столбцу одной таблицы, в которой должен быть уникальный индекс (пока по умолчанию столбец 'id').
Собственно ,код: PHP код:
|
27.02.2013, 16:36 | #10 |
Пользователь
Регистрация: 29.03.2010
Сообщений: 35
|
Какая СуБД и тип таблиц используется?
Для MySQL MyIASM давно придумали full text search. http://phpclub.ru/mysql/doc/fulltext-search.html Также есть Apache Lucene, Яндекс.Сервер, Shpinx и много других которые намного лучше справляются с задачей поиска. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск по сайту | subbota | HTML и CSS | 3 | 01.09.2011 19:34 |
Поиск по сайту! | Марат05 | HTML и CSS | 4 | 20.12.2010 19:49 |
Поиск по сайту | Linel | PHP | 2 | 15.06.2009 11:18 |
поиск по сайту | ара | PHP | 4 | 07.04.2009 19:16 |