![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
![]()
Всем привет! На нескольких проектах я уже писал поиск по сайту (определенным таблицам из базы), но каждый раз цели немного отличались и приходилось все переписывать с нуля.
Сейчас моя цель - написать скрипт/функцию/класс поиска, который можно прикручивать к другим проектам в зависимости от параметров (таблицы, возвращаемые данные и т. п.) Я еще не приступил к реализации этой идеи, пока думаю над алгоритмом, который будет выдавать результаты в более менее релевантном виде. Пока остановился на на следующей мысли:
Как вам такой вариант? Хотелось бы услышать ваши решения по этому вопросу. Последний раз редактировалось Mr_freeman; 20.02.2013 в 10:31. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
да нормально .... можно еще добавить типа ВСЕ слова из фразы чтоб такие документы искал или ЛЮБЫЕ .....Хотя в релевантность попадут все....
.. для релевантности еще надо исключат мелкие слова .... типа союзов итд итп |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
![]()
А как должен задаваться массив для этого, чтобы хранить в каждом элементе количество совпадений и mysql_fetch_array()? (я кажется не работал еще с такими массивами из "записей")
Тобишь на яваскрипте это было бы что то типа Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
![]()
И еще вопрос: какой метод сортировки оптимальней использовать? Обычный пузырек подойдет?
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
неясен вопрос...
если строку разбить в массив - explode() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
![]()
Ну с первым я разобрался, а строку я разбил вот так
PHP код:
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
тогда в чем вопрос то
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
![]()
Пока все получается, спасибо. Я еще напишу, если какие то трудности возникнут.
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 17.01.2010
Сообщений: 277
|
![]()
Итак, класс готов. С ООП я только начинаю работать, по этому буду рад, если укажите на ошибки в структуре класса или в самом алгоритме. Пока поиск можно осуществлять только по одному столбцу одной таблицы, в которой должен быть уникальный индекс (пока по умолчанию столбец 'id').
Собственно ,код: PHP код:
|
![]() |
![]() |
![]() |
#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 |