Вопрос не был достаточно ясен, я думаю; вот обновленный прямо к вопросу о точке:
Что общие архитектуры используются в создании метапоисковой системы и есть ли какие-либо библиотеки, доступные для создания того типа поисковой системы?
Я смотрю на создание типа "предприятия" поисковой системы, куда индексируемые данные могли прибывать из собственного (как Автономия или Google Box) или общедоступные поисковые системы (как Google Web или Yahoo Web).
Если вы посмотрите Garlic (pdf) , вы заметите, что его архитектура достаточно универсальна и может быть адаптирована к мета-поисковой машине.
ОБНОВЛЕНИЕ:
Примерный архитектурный набросок выглядит примерно так:
+---------------------------+
| |
| Meta-Search Engine | +---------------+
| | | |
| +-------------------+ |---------| Configuration |
| | Query Processor | | | |
| | | | +---------------+
| +-------------------+ |
+-------------+-------------+
|
+----------+---------------+
+--+----------+-------------+ |
| | | |
| +-------+-------+ | |
| | Wrapper | | |
| | | | |
| +-------+-------+ | |
| | | |
| | | |
| +-------+--------+ | |
| | | | |
| | Search Engine | | |
| | | +-+
| +----------------+ |
+---------------------------+
Изображены следующие части:
Не совсем то, что вы ищете, но я бы все же предложил проверить Компас, это может дать вам несколько идей. А также Hibernate Search.
Обновление: Чтобы уточнить, Compass не является ORM (как и Hibernate Search), это API, ориентированный на поиск, и поскольку он пытается абстрагироваться от базовой поисковой системы (Lucene), я предлагал взглянуть на некоторые структуры, которые он использует: Анализаторы, Фильтр анализатора, Парсер запросов и т.д.
Построенный поверх Lucene, Compass упрощает общие шаблоны использования Lucene, такие как поиск в стиле google (...)
Взгляните на Lucene .
Apache Lucene - высокопроизводительный, полнофункциональная поисковая система по тексту библиотека написана полностью на Java. Это это технология, подходящая почти для любое приложение, которое требует полнотекстовый поиск, особенно кроссплатформенность.
На этой странице перечислено несколько:
http://java-source.net/open-source/search-engines
Я предполагаю, что все API будут похожи тем, что они принимают строку запроса и некоторые параметры, и возвращают набор результатов. Однако точные типы опций и результатов, скорее всего, будут отличаться, поэтому я бы подумал, что вам понадобится какой-то подход (например, Adapter) для унификации доступа к различным бэкендам.
Если вы умеете читать Objective-C и хотите увидеть рабочий пример чего-то вроде «метапоисковой машины», вы можете взглянуть на исходный код платформы Google Vermilion . Он использует движок, который поддерживает очень популярную утилиту Google Quick Search Box для OS X (которая, в свою очередь, очень похожа на QuickSilver .
Фреймворк предоставляет возможность добавления плагинов) бэкэнд для процесса поиска и занимается сортировкой слиянием результатов из ряда источников и т. д. Я могу представить, что дизайн федеративной поисковой системы любого типа будет следовать аналогичной схеме.