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