Развертывание плагина индексатора Apache Nutch

Вы можете настроить Google Cloud Search для предоставления веб-контента пользователям, развернув плагин индексатора Cloud Search для Apache Nutch , веб-краулера с открытым исходным кодом.

При запуске веб-сканирования Apache Nutch сканирует веб-страницы и использует плагин индексатора для загрузки исходных бинарных (или текстовых) версий содержимого документов в API Google Cloud Search. API Cloud Search индексирует контент и предоставляет результаты вашим пользователям.

Важные соображения

Перед развертыванием плагина индексатора следует учесть следующие моменты.

Системные требования

Системные требования
Операционная система Только для Linux:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 бит)
Программное обеспечение
  • Apache Nutch версии 1.15. Программное обеспечение плагина индексатора включает эту версию Nutch.
  • На компьютере, на котором будет запускаться плагин индексатора, должна быть установлена ​​Java JRE 1.8.
Типы документов Apache Tika Apache Tika 1.18 поддерживает различные форматы документов.

Разверните плагин индексатора.

В этих шагах описано, как установить плагин индексатора и настроить его компоненты для сканирования URL-адресов и возврата результатов в Cloud Search.

Предварительные требования

Перед развертыванием плагина индексатора соберите информацию, необходимую для подключения Cloud Search к источнику данных:

Шаг 1: Соберите и установите программное обеспечение плагина и Apache Nutch.

  1. Клонируйте репозиторий плагина индексатора с GitHub.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Выберите нужную вам версию плагина индексатора:

    $ git checkout tags/v1-0.0.5
  3. Соберите плагин индексатора.

    $ mvn package

    Чтобы пропустить тесты при сборке плагина, используйте mvn package -DskipTests .`.

  4. Загрузите Apache Nutch 1.15 и следуйте инструкциям по установке Apache Nutch .

  5. Распакуйте архив target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip в папку. Скопируйте папку plugins/indexer-google-cloudsearch в папку plugins Apache Nutch ( apache-nutch-1.15/plugins ).

Шаг 2: Настройка плагина индексатора

Для настройки плагина создайте файл с именем plugin-configuration.properties . В файле конфигурации необходимо указать следующие параметры для доступа к источнику данных Cloud Search.

Параметр Параметр
Идентификатор источника данных api.sourceId = 1234567890abcdef
Обязательно. Идентификатор источника Cloud Search, который администратор Google Workspace настроил для плагина индексатора.
Служебный аккаунт api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Обязательно. Файл ключа учетной записи службы Cloud Search, созданный администратором Google Workspace для обеспечения доступа к плагину индексатора.

В следующем примере показан образец конфигурационного файла:

# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json

Конфигурационный файл также может содержать параметры, управляющие поведением плагина, например, как плагин передает данные в API Cloud Search и как он заполняет метаданные и структурированные данные. Описание этих параметров см. в разделе «Параметры коннектора, предоставленные Google» .

Шаг 3: Настройка Apache Nutch

  1. Откройте conf/nutch-site.xml и добавьте следующие параметры:

    Параметр Параметр
    Плагин включает в себя plugin.includes = text

    Обязательно. Список используемых плагинов. Он должен включать как минимум:

    • индекс-базовый
    • индекс-больше
    • indexer-google-cloudsearch
    conf/nutch-default.xml указано значение по умолчанию, но вам необходимо вручную добавить в него indexer-google-cloudsearch .
    Названия метатегов metatags.names = text

    Необязательно. Разделенный запятыми список тегов, которые соответствуют свойствам в соответствующей схеме источника данных. Для получения дополнительной информации см. раздел «Метатеги для анализа в Nutch» .

    В следующем примере показана необходимая модификация файла nutch-site.xml :

    <property>
      <name>plugin.includes</name>
      <value>protocol-(http|httpclient)|urlfilter-regex|index-(basic|more|metadata)|query-(basic|site|url|lang)|indexer-google-cloudsearch|nutch-extensionpoints|parse-(text|html|msexcel|msword|mspowerpoint|pdf|metatags)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-(html|tika|metatags)|index-(basic|anchor|more|metadata)</value>
    </property>
    
  2. Откройте conf/index-writers.xml и добавьте следующий раздел:

    <writer id="indexer_google_cloud_search_1" class="org.apache.nutch.indexwriter.gcs.GoogleCloudSearchIndexWriter">
      <parameters>
        <param name="gcs.config.file" value="path/to/sdk-configuration.properties"/>
      </parameters>
      <mapping>
        <copy />
        <rename />
        <remove />
      </mapping>
    </writer>
    

    Раздел <writer> содержит следующие параметры:

    Параметр Параметр
    Путь к файлу конфигурации Cloud Search gcs.config.file = path

    Обязательно. Полный (абсолютный) путь к файлу конфигурации Cloud Search.

    Формат загрузки gcs.uploadFormat = text

    Необязательный параметр. Формат, используемый плагином для отправки содержимого документа в API Cloud Search. Допустимые значения:

    • raw : выдает оригинальный, неконвертированный контент.
    • text : отправляет извлеченное текстовое содержимое. По умолчанию используется значение raw .

Шаг 4: Настройка веб-сканирования

Перед началом сканирования веб-сайта настройте его таким образом, чтобы он включал только ту информацию, которую ваша организация хочет сделать доступной. Для получения дополнительной информации см. руководство по Nutch .

  1. Настройте начальные URL-адреса.

    Начальные URL-адреса определяют, с какого места веб-сканер начинает индексацию вашего контента. Сканер должен иметь возможность получить доступ ко всему контенту, который вы хотите включить, перейдя по указанным ссылкам.

    Для настройки начальных URL-адресов:

    1. Перейдите в каталог установки Nutch:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. Создайте каталог для URL-адресов:
      $ mkdir urls
    3. Создайте файл с именем seed.txt и укажите по одному URL-адресу на каждой строке.
  2. Установите правила, которым следует следовать, и правила, которым не следует следовать.

    Правила «Следовать за URL-адресами» определяют, какие URL-адреса индексирует сканер. Правила «Не следовать за URL-адресами» исключают URL-адреса из индексации.

    Для настройки этих правил:

    1. Перейдите в каталог установки Nutch.
    2. Отредактируйте conf/regex-urlfilter.txt :
      $ nano conf/regex-urlfilter.txt
    3. Вводите регулярные выражения с префиксом "+" или "-":

      # skip file extensions
      -\.(gif|GIF|jpg|JPG|png|PNG|ico)
      
      # skip protocols (file: ftp: and mailto:)
      -^(file|ftp|mailto):
      
      # allow urls starting with https://support.google.com/gsa/
      +^https://support.google.com/gsa/
      
      # accept anything else
      #+.
      
  3. Отредактируйте скрипт сканирования.

    Если параметр gcs.uploadFormat отсутствует или установлен в значение "raw", необходимо добавить аргументы -addBinaryContent -base64 к команде nutch index . Эти аргументы указывают модулю индексатора Nutch включать двоичное содержимое в формате Base64.

    1. Откройте скрипт crawl в apache-nutch-1.15/bin .
    2. Добавьте параметры, как показано в этом примере:

            if $INDEXFLAG; then
                echo "Indexing $SEGMENT to index"
                __bin_nutch index $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb -addBinaryContent -base64 -linkdb "$CRAWL_PATH"/linkdb "$CRAWL_PATH"/segments/$SEGMENT
      
                echo "Cleaning up index if possible"
                __bin_nutch clean $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb
            else
                echo "Skipping indexing ..."
      

Шаг 5: Запустите сканирование веб-страниц и загрузку контента.

После установки плагина индексатора вы можете запустить его в локальном режиме. Используйте скрипты из ./bin для выполнения задания по обходу веб-страниц.

В следующем примере предполагается, что компоненты находятся в локальном каталоге. Запустите Nutch из каталога apache-nutch-1.15 :

$ bin/crawl -i -s urls/ crawl-test/ 5

Журналы обхода доступны в терминале или в каталоге logs/ . Для управления выводом логов отредактируйте файл conf/log4j.properties .