PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Alho
Отправлено: 07 Декабря, 2012 - 21:53:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




Материал на сайте разбит по нескольким таблицам - новости, статьи и т.д. Каждый тип записей хранится в своей таблице. Уже добавил полнотекстовый индекс к полям основного текста.

Как правильнее организовать поиск? Создать представление из этих таблиц с типом записи, id и текстом? Вообще задействуются индексы в этом случае?
Или из php по очереди опрашивать каждую из таблиц?
Другие варианты?
 
 Top
EuGen Администратор
Отправлено: 07 Декабря, 2012 - 22:07:17
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Alho пишет:
Другие варианты?

Я бы рекомендовал Sphinx


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Alho
Отправлено: 07 Декабря, 2012 - 22:08:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




Знаю. Я бы его себе тоже рекомендовал, если бы не шаред-хостинги.
 
 Top
EuGen Администратор
Отправлено: 07 Декабря, 2012 - 22:11:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




К сожалению, MySQL не может строить индексы в представлениях (view)
Поэтому для использования индексов в конкретных таблицах придется делать запросы по отдельности и обрабатывать уже их в php. В случае с большой выборкой, разница, пожалуй, будет невелика.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
esterio
Отправлено: 08 Декабря, 2012 - 12:17:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 5027
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Есть такое понятие как поиск по хешам(точное название не могу спомнить). Алгоритм:
Строка очищаеться от левого (точки, знаки, более 2 пробелов, перевожы на новую стоку, слова менее 3 символов и т.д.). Далее создаются хеши слов и заносяться в базу.
Когда происходит поиск действия те самые, только хеши не заносяться в базу а ищуться совпадения, и когда находяться то ето и есть результаты поиска. Тоько не забудьте рядом с хешами в базе заносить Ид и таблицу для того чтобы знать что виводить
 
 Top
EuGen Администратор
Отправлено: 08 Декабря, 2012 - 13:24:39
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Не рискну себе даже представить, что произойдет, если подобный алгоритм попытаться применить к полнотекстовому поиску.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
esterio
Отправлено: 08 Декабря, 2012 - 13:29:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 5027
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




На одном проекте так и делали, только оптимизировали, тоесть подобние слова удаляли, брали только первые 40 слов, и если били совпадения, то делалии поиск глубже. И да использовали http://forum.dklab.ru/php/advises/HeuristicWithoutTheDictionaryExtractionOfARootFromRussianWord.html.

Другого выбора не было
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB