Puedes configurar Google Cloud Search para que entregue contenido web a tus usuarios implementando el complemento indexador de Google Cloud Search para Apache Nutch, un rastreador web de código abierto.
Cuando inicias el rastreo web, Apache Nutch rastrea la Web y usa el complemento indexador para subir versiones binarias (o de texto) originales del contenido de los documentos a la API de indexación de Google Cloud Search. La API de Indexing indexa el contenido y entrega los resultados a los usuarios.
Consideraciones importantes
Requisitos del sistema
Requisitos del sistema | |
---|---|
Sistema operativo | Solo en Linux:
|
Software |
|
Tipos de documentos de Apache Tika | Formatos de documento compatibles con Apache Tika 1.18 |
Implementa el complemento indexador
En los siguientes pasos, se describe cómo instalar el complemento indexador y configurar sus componentes para rastrear las URL especificadas y mostrar los resultados en Cloud Search.
Requisitos previos
Antes de implementar el complemento indexador para Cloud Search de Apache Nutch, recopila la información necesaria a fin de conectar Google Cloud Search y la fuente de datos:
- Clave privada de Google Workspace (que contiene el ID de la cuenta de servicio). Para obtener información sobre cómo obtener una clave privada, consulta Configura el acceso a la API de Google Cloud Search.
- ID de la fuente de datos de Google Workspace. Para obtener información acerca de cómo obtener un ID de fuente de datos, ve a Agrega una fuente de datos en la que se buscará.
Paso 1: Compila e instala el software del complemento y Apache Nutch
Clona el repositorio del complemento indexador desde GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Revisa la versión deseada del complemento indexador:
$ git checkout tags/v1-0.0.5
Compila el complemento indexador.
$ mvn package
Para omitir las pruebas durante la compilación del complemento indexador, usa
mvn package -DskipTests
.Descarga Apache Nutch 1.15 y sigue las instrucciones de instalación de Apache Nutch.
Extrae
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(compilado en el paso 2) a una carpeta. Copia la carpetaplugins/indexer-google-cloudsearch
en la carpeta de complementos de instalación de Apache Nutch (apache-nutch-1.15/plugins
).
Paso 2: Configura el complemento indexador
Si deseas configurar el complemento indexador para Apache Nutch, crea un archivo llamado plugin-configuration.properties
.
El archivo de configuración debe especificar los siguientes parámetros, que son necesarios para acceder a la fuente de datos de Google Cloud Search.
Configuración | Parámetro |
ID de la fuente de datos | api.sourceId = 1234567890abcdef
Obligatorio. El ID de la fuente de Google Cloud Search que el administrador de Google Workspace configuró para el complemento indexador. |
Cuenta de servicio | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Obligatorio. El archivo de claves de la cuenta de servicio de Google Cloud Search que creó el administrador de Google Workspace para la accesibilidad del complemento indexador. |
En el siguiente ejemplo, se muestra un archivo de configuración de muestra con los parámetros necesarios.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
El archivo de configuración también puede contener otros parámetros que controlan el comportamiento del complemento indexador. Puedes configurar cómo el complemento envía datos a la API de Cloud Search, defaultAcl.*
y batch.*
. También puedes configurar la forma en que el complemento indexador propaga metadatos y datos estructurados.
Para obtener descripciones de estos parámetros, consulta los parámetros de conectores proporcionados por Google.
Paso 3: Configura Apache Nutch
Abre
conf/nutch-site.xml
y agrega los siguientes parámetros:Parámetro de configuración Parámetro El complemento incluye plugin.includes = text
Obligatorio. Lista de complementos que se usan. Se debe incluir, al menos, lo siguiente:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
proporciona un valor predeterminado para esta propiedad, pero también debes agregarleindexer-google-cloudsearch
de forma manual.Nombres de metaetiquetas metatags.names = text
Opcional. Lista de etiquetas separadas por comas que se asignan a propiedades en el esquema de fuente de datos correspondiente. Si deseas obtener más información sobre cómo configurar Apache Nutch para metaetiquetas, consulta Metaetiquetas de Nutch-parse.
En el siguiente ejemplo, se muestra la modificación requerida para
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>
Abre
conf/index-writers.xml
y agrega la siguiente sección:<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>
La sección <writer> contiene los siguientes parámetros:
Parámetro de configuración Parámetro Ruta al archivo de configuración de Google Cloud Search gcs.config.file = path
Obligatorio. Ruta completa (absoluta) al archivo de configuración de Google Cloud Search.
Formato de carga gcs.uploadFormat = text
Opcional. El formato en el que el complemento indexador envía contenido de documentos a la API del indexador de Google Cloud Search. Estos son los valores válidos:
raw
: El complemento indexador envía contenido original de documentos sin convertir.text
: El complemento indexador envía contenido textual extraído. El valor predeterminado esraw
.
Paso 4: Configura el rastreo web
Antes de iniciar un rastreo web, configúralo para que solo incluya la información que tu organización quiere que esté disponible en los resultados de la búsqueda. En esta sección, se proporciona una descripción general. Para obtener más información sobre cómo configurar un rastreo web, consulta el instructivo de Nutch.
Configura URLs de inicio.
Las URL de inicio controlan dónde comienza a rastrear tu contenido el rastreador web de Apache Nutch. Las URLs de inicio deben permitir que el rastreador web llegue a todo el contenido que deseas incluir en un rastreo específico a través de los vínculos. Las URLs de inicio son obligatorias.
Para configurar las URL de inicio, sigue estos pasos:
Cambia el directorio de trabajo al directorio de instalación de Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Crea un directorio para las URL:
$ mkdir urls
Crea un archivo llamado
seed.txt
y enumera las URLs con 1 URL por línea.
Configura reglas de seguimiento y de no seguimiento.
Las reglas de seguimiento de URL controlan qué URLs se rastrean y se incluyen en el índice de Google Cloud Search. El rastreador web verifica las URLs con las reglas de URL de seguimiento. Solo se rastrean y se indexan las URL que coinciden con estas reglas.
Las reglas de no seguimiento evitan que las URLs se rastreen y se incluyan en el índice de Google Cloud Search. Si una URL contiene un patrón de no rastreo, el rastreador web no la rastrea.
Para configurar reglas de URL de seguimiento y de no seguimiento, sigue estos pasos:
Cambia el directorio de trabajo al directorio de instalación de Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Edita
conf/regex-urlfilter.txt
para cambiar las reglas de seguimiento o no seguir: \$ nano conf/regex-urlfilter.txt
Ingresa expresiones regulares con un prefijo "+" o "-" para seguir o no seguir patrones de URL y extensiones, como se muestra en los siguientes ejemplos. Se permiten expresiones abiertas.
# 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) #+.
Edita la secuencia de comandos de rastreo.
Si falta el parámetro
gcs.uploadFormat
o está configurado como “sin procesar”, debes agregar argumentos “-addBinaryContent -base64
” para pasarlos al comandonutch index
. Estos argumentos le indican al módulo del indexador para Nutch que incluya contenido binario en Base64 cuando invoque el complemento indexador. La secuencia de comandos ./bin/crawl no tiene estos argumentos de forma predeterminada.- Abre la secuencia de comandos
crawl
enapache-nutch-1.15/bin
. Agrega las opciones
-addBinaryContent -base64
a la secuencia de comandos, como en el siguiente ejemplo: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 ..."
- Abre la secuencia de comandos
Paso 5: Inicia un rastreo web y carga de contenido
Después de instalar y configurar el complemento indexador, puedes ejecutarlo de manera independiente en modo local. Usa las secuencias de comandos de ./bin
para ejecutar un trabajo de rastreo o comandos de Nutch individuales.
En el siguiente ejemplo, se supone que los componentes obligatorios están ubicados en el directorio local. Ejecuta Nutch con el siguiente comando desde el directorio apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
Los registros de rastreo están disponibles en la salida estándar (terminal) o en el directorio logs/
. Para dirigir la salida de registro o para registros más detallados, edita conf/log4j.properties
.