Вы можете настроить Google Cloud Search для предоставления веб-контента вашим пользователям, развернув плагин индексатора Google Cloud Search для Apache Nutch , веб-сканера с открытым исходным кодом.
Когда вы начинаете сканирование Интернета, Apache Nutch сканирует Интернет и использует плагин индексатора для загрузки исходных двоичных (или текстовых) версий содержимого документа в API индексирования Google Cloud Search. API индексирования индексирует контент и предоставляет результаты вашим пользователям.
Важные соображения
Системные требования
Системные требования | |
---|---|
Операционная система | Только Linux:
|
Программное обеспечение |
|
Типы документов Apache Tika | Форматы документов, поддерживаемые Apache Tika 1.18 |
Разверните плагин индексатора
Следующие шаги описывают, как установить плагин индексатора и настроить его компоненты для сканирования указанных URL-адресов и возврата результатов в Cloud Search.
Предварительные условия
Прежде чем развернуть подключаемый модуль индексатора Cloud Search Apache Nutch, соберите информацию, необходимую для подключения Google Cloud Search и источника данных:
- Закрытый ключ Google Workspace (который содержит идентификатор сервисного аккаунта). Информацию о получении закрытого ключа можно найти в разделе Настройка доступа к API Google Cloud Search .
- Идентификатор источника данных Google Workspace. Информацию о получении идентификатора источника данных см. в разделе Добавление источника данных для поиска .
Шаг 1. Создайте и установите плагин и Apache Nutch.
Клонируйте репозиторий плагина индексатора с GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Проверьте нужную версию плагина индексатора:
$ git checkout tags/v1-0.0.5
Создайте плагин индексатора.
$ mvn package
Чтобы пропустить тесты при создании плагина индексатора, используйте
mvn package -DskipTests
.Загрузите Apache Nutch 1.15 и следуйте инструкциям по установке Apache Nutch .
Извлеките
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
Откройте
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>
Откройте
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 .
Настройте начальные URL-адреса.
Начальные URL-адреса определяют, где веб-сканер Apache Nutch начнет сканировать ваш контент. Начальные URL-адреса должны позволять веб-сканеру получать доступ ко всему контенту, который вы хотите включить в конкретный обход, переходя по ссылкам. Укажите начальные URL.
Чтобы настроить начальные URL-адреса:
Измените рабочий каталог на каталог установки Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Создайте каталог для URL-адресов:
$ mkdir urls
Создайте файл с
seed.txt
и перечислите в нем URL-адреса, по одному URL-адресу в строке.
Установите правила следования и несоблюдения.
Правила следования URL-адресам определяют, какие URL-адреса сканируются и включаются в индекс Google Cloud Search. Веб-искатель проверяет URL-адреса на соответствие правилам отслеживания URL-адресов. Сканируются и индексируются только URL-адреса, соответствующие этим правилам.
Правила «не соблюдать» исключают URL-адреса из сканирования и включения в индекс Google Cloud Search. Если URL-адрес содержит шаблон «Не сканировать», веб-искатель не сканирует его.
Чтобы настроить правила отслеживания и неследования URL-адресов:
Измените рабочий каталог на каталог установки Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Отредактируйте
conf/regex-urlfilter.txt
, чтобы изменить правила следовать/не следовать: \$ nano conf/regex-urlfilter.txt
Введите регулярные выражения с префиксом «+» или «-», чтобы следовать шаблонам и расширениям 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) #+.
Отредактируйте скрипт сканирования.
Если параметр
gcs.uploadFormat
отсутствует или для него установлено значение «raw», необходимо добавить аргументы «-addBinaryContent -base64
» для передачи командеnutch index
. Эти аргументы сообщают модулю Nutch Indexer включать двоичный контент в Base64 при вызове плагина индексатора. По умолчанию сценарий ./bin/crawl не имеет этих аргументов.- Откройте скрипт
crawl
вapache-nutch-1.15/bin
. Добавьте в скрипт параметры
-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
.