Задавайте вопросы, мы ответим
Вы не зашли.
Если хранить данные в MySQL в виде MyISAM-таблиц, то да.
Попробуйте, все-таки, взять исходники FULLTEXT и модифицировать формулу ранжирования.
Я почти уверен, что это должно быть достаточно просто. И будет интересно, если у Вас
получится
Неактивен
Можно обойтись без временной таблицы. Попробуйте объединить таблицу саму на себя. Например 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)
Неактивен