Создание поисковой системы в Интернете [закрыто]

Это сработает, чтобы объединить print с << и управлять порядком:

print( std::cout << "Hello, world!" ) << std::endl;

Или, если вы хотите, чтобы функция, вызываемая с помощью <<, см. ответ Йоахима.

33
задан Aseem 21 September 2008 в 21:35
поделиться

9 ответов

Существует несколько частей к поисковой системе. Вообще говоря, безнадежно общим способом (люди, не стесняются редактировать , если Вы чувствуете, можно добавить лучшие описания, ссылки, и т.д.):

  1. поисковый робот . Это - часть, которая проходит сеть, захватывает страницы и хранит информацию о них в некоторое центральное хранилище данных. В дополнение к самому тексту Вы захотите вещи как время, Вы получили доступ к нему и т.д. Поисковый робот должен быть достаточно умным для знания, как часто поразить определенные домены, для повиновения соглашению robots.txt, и т.д.

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

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

  4. занимающий место механизм . Учитывая несколько тысяч URL, соответствующих "яблоку", как Вы решаете, какой результат является лучшим? Выступ индекс не дает Вам ту информацию. Необходимо проанализировать текст, связывающуюся структуру, и безотносительно других частей, Вы хотите посмотреть на и создать некоторые очки. Это может быть сделано полностью на лету (это действительно твердо), или на основе некоторых предварительно вычисленных понятий "экспертов" (см. PageRank, и т.д.).

  5. фронтэнд . Что-то должно получить пользовательские запросы, поразить центральный механизм и ответить; это что-то должно быть умным о кэшировании результатов, возможно смешивании в результатах других источников, и т.д. Это имеет свой собственный набор проблем.

Мой совет - выбирает, который из этих интересов Вы больше всего, загрузите Lucene или Xapian или любой другой проект с открытым исходным кодом там, вытащите бит, который делает одну из вышеупомянутых задач и пытается заменить ее. Хотелось бы надеяться, с чем-то лучше:-).

Некоторые ссылки, которые могут оказаться полезными: "Гибкий поисковый робот" , статья из Эстонии (на английском языке) Поисковая система Сфинкса , индексация и поисковый API. Разработанный для большого DBS, но модульный и открытый. "Информационный поиск , учебник о IR от Manning и др. Хороший обзор того, как индексы создаются, различные проблемы, которые подходят, а также некоторое обсуждение проверки, и т.д. Бесплатная онлайн версия (на данный момент)!

52
ответ дан 3 revs 21 September 2008 в 21:35
поделиться

Выезд nutch, это записано тем же парнем, который создал Lucene ( Doug Cutting ).

6
ответ дан Mauricio Scheffer 21 September 2008 в 21:35
поделиться
  • 1
    Не пробуйте вслепую. Состояния сообщения об ошибке: Storing complete log in /root/.pip/pip.log настолько открытый, что файл, найдите любые ошибки и см. точные сообщения об ошибках от gcc. – damienfrancois 13 November 2013 в 14:28

Xapian является другой опцией для Вас. Я услышал, что это масштабируется лучше, чем некоторые реализации Lucene.

6
ответ дан Oli 21 September 2008 в 21:35
поделиться
  • 1
    @damiefrancois - Я попробовал, установил тех, и я все еще получаю ту ошибку! – Simple-Solution 13 November 2013 в 14:27

Если Вы интересуетесь приобретением знаний о теории позади информационного поиска и некоторые технические детали позади реализации поисковых систем, я могу рекомендовать книгу , Управляющую Гигабайтами Ian Witten, Alistair Moffat и Tim C. Bell. (Раскрытие: Alistair Moffat был моим университетским супервизором.), Хотя это немного датировано теперь (первый выпуск вышел в 1994 и второе в 1999 - что так твердо о руководящих гигабайтах теперь?), базовая теория является все еще звуковой, и это - большое введение и в индексацию и в использование сжатия в индексации и поисковых системах.

1
ответ дан TimB 21 September 2008 в 21:35
поделиться

Я запустил бы с существующего проекта, такого как поисковая система с открытым исходным кодом от Wikia.

[Мое понимание - то, что проект Поиска Wikia закончился. Однако я думаю, связываясь с существующим проектом с открытым исходным кодом, хороший способ упростить в обязательство этого размера.]

http://re.search.wikia.com/about/get_involved.html

4
ответ дан bmb 21 September 2008 в 21:35
поделиться

Мне кажется, что самая большая часть является индексацией сайтов. Создание ботов, чтобы обыскивать Интернет и проанализировать их содержание.

друг А и я говорили о том, как удивительный Google и другие поисковые системы должны находиться под капотом. Миллионы результатов в под половиной секунды? Сумасшедший. Я думаю, что они, возможно, задали результаты поиска для обычно искавших объектов.

редактирование: Этот сайт выглядит довольно интересным.

5
ответ дан Joel 21 September 2008 в 21:35
поделиться
  • 1
    Установка python-devel зафиксировала это для меня. Спасибо! – Ezekiel Victor 25 March 2014 в 09:00

Существуют порты Lucene. Пехлеви имеет одно в свободном доступе. Взгляните на это быстрое учебное руководство: http://devzone.zend.com/node/view/id/91

0
ответ дан Oli 21 September 2008 в 21:35
поделиться

Вот немного отличающийся подход, если Вы так не интересуетесь программированием его, но более интересующиеся результатами: считайте здание им с помощью API Google Custom Search Engine .

Преимущества:

  • Google делает весь тяжелый подъем для Вас
  • , Знакомый UI и поведение для Ваших пользователей
  • Могут иметь что-то и работающий в минутах
  • Партии возможностей настройки

Недостатки:

  • Вы не пишете код, таким образом, никакая возможность изучения там
  • Все, что Вы хотите искать, должно быть общедоступным & в индексе Google уже
  • Ваш результат связывается с Google
0
ответ дан Tim Farley 21 September 2008 в 21:35
поделиться

Вот метод, который я использую.

public static <T> T initializeAndUnproxy(T entity) {
    if (entity == null) {
        throw new 
           NullPointerException("Entity passed for initialization is null");
    }

    Hibernate.initialize(entity);
    if (entity instanceof HibernateProxy) {
        entity = (T) ((HibernateProxy) entity).getHibernateLazyInitializer()
                .getImplementation();
    }
    return entity;
}
-121--1819537-

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

-121--3044080-

Я тоже заинтересован в поисковой системе. Я рекомендовал Apache Hadoop MapReduce и Apache Lucene. Ускорение работы Hadoop Cluster - лучший способ.

1
ответ дан 27 November 2019 в 17:56
поделиться
Другие вопросы по тегам:

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