Всем, привет! Может кто-нибудь подскажет, какие есть возможности и как лучше организовать следующий поиск по сайту.
На каждой странице сайта отображается множество различных типов материалов, нод и блоков. Необходимо, чтобы в индекс попадало все содержимое страницы, но в результатах поиска выводились не отдельные прикрепленные к ней ноды, а ссылка на всю страницу, где встречается текст прикрепленного к ней блока или ноды (так, как ее видит посетитель). Причем не более одного раза, ведь на одной странице может быть несколько блоков с искомым словом. Из коробки это сделать не получится.
Есть внешние поисковые серверы, например: Apache Solr. По идее он может видеть страницу в целом, не обращая внимания из чего та собрана. Но с помощью друпаловского модуля для интеграции с солр опять же получилось лишь выводить отдельные ноды. Ну, можно, скажем во вьюхе, перед выводом позиции делать запрос на основную страницу (проверить, где вызывается текущая нода), но это не решает проблему дублирования основной страницы, когда на ней есть несколько нод, отвечающих запросу.
Может кто-то знает, как решить такую задачу, подскажите направление, куда смотреть?
Гугл-поиск не вариант, нужно что-то свое.
Спасибо.
Комментарии
сфинкс с xml-pipe + паук, который будет скармливать ему контент?
Search API + Fuzzy Search Engine может быть подойдет. У фуззи есть возможность гулять по нодам из одной в другую. Например если нода ссылается на другую, то можно другую тоже индексировать в том случае. Кароче, возможно это то что вам надо.