Архитектура метапоисковой системы

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

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

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

14
задан Loki 19 May 2010 в 22:45
поделиться

5 ответов

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

ОБНОВЛЕНИЕ:

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

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

Изображены следующие части:

  • Мета-поисковая машина - движок, координирующий все это.
  • Обработчик запросов - часть механизма, разрешает возможности, отправляет запросы и объединяет результаты определенных поисковых систем (через оболочки).
  • Wrapper - связывает API мета-поисковой системы с определенными поисковыми системами. Каждая оболочка работает с определенной поисковой системой. Предоставляет возможности внешней поисковой системы для метапоисковой машины, принимает поисковые запросы и отвечает на них.
  • Поисковая машина - внешние поисковые системы для запроса, они открываются для метапоисковой машины через оболочки.
  • Конфигурация - данные, которые настраивают мета-поисковую систему, например, какие оболочки использовать, где найти другие оболочки и т. Д. Также можно настроить оболочки.
9
ответ дан 1 December 2019 в 13:58
поделиться

Не совсем то, что вы ищете, но я бы все же предложил проверить Компас, это может дать вам несколько идей. А также Hibernate Search.

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

Построенный поверх Lucene, Compass упрощает общие шаблоны использования Lucene, такие как поиск в стиле google (...)

См. также:

2
ответ дан 1 December 2019 в 13:58
поделиться

Взгляните на Lucene .

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

3
ответ дан 1 December 2019 в 13:58
поделиться

На этой странице перечислено несколько:

http://java-source.net/open-source/search-engines

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

1
ответ дан 1 December 2019 в 13:58
поделиться

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

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

1
ответ дан 1 December 2019 в 13:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: