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

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

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

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

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

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

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

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

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

Прежде чем развертывать подключаемый модуль индексатора Cloud Search Apache Nutch, соберите информацию, необходимую для подключения Google 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 (созданный на шаге 2) в папку. Скопируйте папку plugins/indexer-google-cloudsearch в папку установочных плагинов Apache Nutch ( apache-nutch-1.15/plugins ).

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

Чтобы настроить плагин индексатора Apache Nutch, создайте файл с именем plugin-configuration.properties .

В файле конфигурации должны быть указаны следующие параметры, необходимые для доступа к источнику данных Google Cloud Search.

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

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

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

Файл конфигурации также может содержать другие параметры, управляющие поведением плагина индексатора. Вы можете настроить, как плагин передает данные в Cloud Search API, defaultAcl.* и batch.* . Вы также можете настроить, как плагин индексатора заполняет метаданные и структурированные данные.

Описания этих параметров см. в разделе Параметры соединителя, предоставленные Google .

Шаг 3. Настройте Apache Nutch

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

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

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

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

    Необязательный. Список тегов, разделенных запятыми, которые сопоставляются со свойствами в схеме соответствующего источника данных. Чтобы узнать больше о том, как настроить Apache Nutch для метатегов, перейдите в раздел Метатеги Nutch-parse .

    В следующем примере показано необходимое изменение файла 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> содержит следующие параметры:

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

    Необходимый. Полный (абсолютный) путь к файлу конфигурации Google Cloud Search.

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

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

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

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

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

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

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

    Чтобы настроить начальные URL-адреса:

    1. Измените рабочий каталог на каталог установки Nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Создайте каталог для URL-адресов:

      $ mkdir urls
    3. Создайте файл с seed.txt и перечислите в нем URL-адреса, по одному URL-адресу в строке.

  2. Установите правила следования и несоблюдения.

    Правила следования URL-адресам определяют, какие URL-адреса сканируются и включаются в индекс Google Cloud Search. Веб-искатель проверяет URL-адреса на соответствие правилам отслеживания URL-адресов. Сканируются и индексируются только URL-адреса, соответствующие этим правилам.

    Правила «не соблюдать» исключают URL-адреса из сканирования и включения в индекс Google Cloud Search. Если URL-адрес содержит шаблон «Не сканировать», веб-искатель не сканирует его.

    Чтобы настроить правила отслеживания и неследования URL-адресов:

    1. Измените рабочий каталог на каталог установки Nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Отредактируйте conf/regex-urlfilter.txt , чтобы изменить правила следовать/не следовать: \

      $ nano conf/regex-urlfilter.txt
    3. Введите регулярные выражения с префиксом «+» или «-», чтобы следовать шаблонам и расширениям URL-адресов или не следовать им, как показано в следующих примерах. Допускаются открытые выражения.

      # 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
      # (commented out due to the single url-prefix allowed above)
      #+.
      
  3. Отредактируйте скрипт сканирования.

    Если параметр gcs.uploadFormat отсутствует или для него установлено значение «raw», необходимо добавить аргументы « -addBinaryContent -base64 » для передачи команде nutch index . Эти аргументы сообщают модулю Nutch Indexer включать двоичный контент в Base64 при вызове плагина индексатора. По умолчанию сценарий ./bin/crawl не имеет этих аргументов.

    1. Откройте скрипт crawl в apache-nutch-1.15/bin .
    2. Добавьте в скрипт параметры -addBinaryContent -base64 , как показано в следующем примере:

            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.

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

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

Журналы сканирования доступны на выходе std (терминал) или в каталоге logs/ . Чтобы направить вывод журнала или сделать его более подробным, отредактируйте conf/log4j.properties .