SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#26 21.10.2007 05:02:00

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Оптимизация полнотекстового поиска

Если хранить данные в MySQL в виде MyISAM-таблиц, то да.

Попробуйте, все-таки, взять исходники FULLTEXT и модифицировать формулу ранжирования.
Я почти уверен, что это должно быть достаточно просто. И будет интересно, если у Вас
получится smile

Неактивен

 

#27 26.10.2007 14:24:44

eshum
Участник
Зарегистрирован: 26.10.2007
Сообщений: 3

Re: Оптимизация полнотекстового поиска

Можно обойтись без временной таблицы. Попробуйте объединить таблицу саму на себя. Например SQL запрос для поиска двух слов можно написать приблизительно так:

Код:

SELECT s1.page_id, (s1.weight + s2.weight) AS sum_weight FROM search_index s1, search_index s2
WHERE s1.page_id=s2.page_id AND s1.word_id in($word_first, $word_second) AND s2.word_id in($word_first, $word_second) ORDER BY sum_weight DESC

Но запрос будет выполнятся очень "тяжело". Если у Вас будет много данных, посмотрите в сторону Sphinx www.sphinxsearch.com Это специализированный поисковый движок для MySQL, с хорошей скоростью индексации и отличной скоростью поиска (десятые доли секунды по многомиллионным коллекциям документов). Кроме того, он сможет справится с поставленными Вами требованиями по булевым запросам и по сортировкам результатов поиска.

Отредактированно eshum (26.10.2007 14:39:36)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson