Мета поисковая архитектура - PullRequest
14 голосов
/ 17 мая 2010

Вопрос был недостаточно ясен, я думаю; Вот обновленный прямой вопрос:

Какие общие архитектуры используются при создании поисковой системы мета, и есть ли какие-либо библиотеки для создания поисковой системы такого типа?

Я смотрю на создание поисковой системы «корпоративного» типа, в которой индексированные данные могут поступать из проприетарных (например, Autonomy или Google Box) или общедоступных поисковых систем (например, Google Web или Yahoo Web).

Ответы [ 5 ]

9 голосов
/ 20 мая 2010

Если вы посмотрите на Чеснок (pdf) , вы заметите, что его архитектура достаточно универсальна и может быть адаптирована к мета-поисковой системе.

UPDATE:

Грубый архитектурный эскиз выглядит примерно так:

   +---------------------------+
   |                           |
   |    Meta-Search Engine     |         +---------------+
   |                           |         |               |
   |   +-------------------+   |---------| Configuration |
   |   | Query Processor   |   |         |               |
   |   |                   |   |         +---------------+
   |   +-------------------+   |
   +-------------+-------------+
                 |
      +----------+---------------+
   +--+----------+-------------+ |
   |             |             | |
   |     +-------+-------+     | |
   |     |    Wrapper    |     | |
   |     |               |     | |
   |     +-------+-------+     | |
   |             |             | |
   |             |             | |
   |     +-------+--------+    | |
   |     |                |    | |
   |     | Search Engine  |    | |
   |     |                |    +-+
   |     +----------------+    |
   +---------------------------+

Изображенные части:

  • Мета-поисковик - движок, управляющий всем этим.
  • Query Processor - часть движка, разрешает возможности, отправляет запросы и объединяет результаты определенных поисковых систем (через оболочки).
  • Wrapper - соединяет API мета-поисковой системы с конкретными поисковыми системами. Каждая оболочка работает с определенной поисковой системой. Предоставляет расширенные возможности поисковой системы мета-поисковой системе, принимает и отвечает на поисковые запросы.
  • Поисковая система - внешние поисковые системы для запроса, они подвергаются мета-поисковой системе через оболочки.
  • Конфигурация - данные, которые настраивают механизм мета-поиска, например, какие оболочки использовать, где найти больше оболочек и т. Д. Также можно настроить оболочки.
3 голосов
/ 20 мая 2010

Посмотрите на Lucene .

Apache Lucene - это высокопроизводительный полнофункциональный текстовый поисковик Библиотека написана полностью на Java. Это это технология, подходящая для почти любое приложение, которое требует полнотекстовый поиск, особенно кросс-платформенный.

2 голосов
/ 20 мая 2010

Не совсем то, что вы ищете, но я все же рекомендую проверить Компас , он может дать вам некоторые идеи. И, возможно, также Hibernate Search .

Обновление: Чтобы уточнить, Compass - это не ORM (и не Hibernate Search), это поисково-ориентированный API, и, поскольку он пытается абстрагировать базовую поисковую систему (Lucene), я предложил иметь посмотрите на некоторые структуры, которые он использует: анализаторы, фильтр анализатора, анализатор запросов и т. д.

Основываясь на Lucene, Compass упрощает общие схемы использования Lucene, такие как поиск в стиле Google (...)

Смотри также:

1 голос
/ 25 мая 2010

Если вы можете прочитать Objective-C и хотите увидеть работающий пример чего-то вроде «мета-поисковой системы», вы можете взглянуть на исходный код для Vermilion фреймворка Google.Он использует движок, который поддерживает очень популярную утилиту быстрого поиска Google для OS X (которая, в свою очередь, очень похожа на QuickSilver .

. Фреймворк предоставляет возможностьдобавить бэкенды плагинов для процесса поиска и заниматься слиянием, сортируя результаты из нескольких источников и т. д. Я мог бы представить, что дизайн федеративной поисковой системы любого рода будет следовать аналогичному дизайну.

1 голос
/ 19 мая 2010

Эта страница, кажется, перечисляет несколько:

http://java -source.net / с открытым исходным кодом / Поиск двигателей

Я полагаю, что все API-интерфейсы будут похожи в том, что они принимают строку запроса и некоторые параметры и возвращают набор результатов. Однако точные типы параметров и результатов, вероятно, будут разными, поэтому я подумал, что вам потребуется какой-то подход адаптера (например), чтобы унифицировать доступ к различным бэкэндам.

...