Puedes configurar Google Cloud Search para que entregue contenido web a tus usuarios implementando el complemento indexador de 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 del documento a la API de Google Cloud Search. La API de Cloud Search indexa el contenido y muestra los resultados a tus usuarios.
Consideraciones importantes
Antes de implementar el complemento indexador, ten en cuenta las siguientes consideraciones.
Requisitos del sistema
| Requisitos del sistema | |
|---|---|
| Sistema operativo | Solo en Linux:
|
| Software |
|
| Tipos de documentos de Apache Tika | Formatos de documentos compatibles con Apache Tika 1.18 |
Implementa el complemento del indexador
En estos pasos, se describe cómo instalar el complemento del indexador y configurar sus componentes para rastrear URLs y devolver resultados a Cloud Search.
Requisitos previos
Antes de implementar el complemento indexador, recopila la información necesaria para conectar Cloud Search y la fuente de datos:
- Clave privada de Google Workspace (que contiene el ID de cuenta de servicio). Para obtener información sobre cómo obtener una clave privada, consulta Configura el acceso a la API de Cloud Search.
- Es el ID de la fuente de datos de Google Workspace. Para obtener información sobre cómo conseguir un ID de fuente de datos, consulta Agrega una fuente de datos a la búsqueda.
Paso 1: Compila e instala el software del complemento y Apache Nutch
Clona el repositorio del complemento del indexador desde GitHub.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Consulta la versión del complemento indexador que deseas:
$ git checkout tags/v1-0.0.5
Compila el complemento del indexador.
$ mvn package
Para omitir las pruebas durante la compilación del complemento, 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.zipa una carpeta. Copia la carpetaplugins/indexer-google-cloudsearchen la carpetapluginsde Apache Nutch (apache-nutch-1.15/plugins).
Paso 2: Configura el complemento del indexador
Para configurar el complemento, crea un archivo llamado plugin-configuration.properties.
El archivo de configuración debe especificar los siguientes parámetros para acceder a la fuente de datos de Cloud Search.
| Configuración | Parámetro |
| ID de la fuente de datos | api.sourceId = 1234567890abcdef
Obligatorio. ID de la fuente de 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 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:
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
El archivo de configuración también puede contener parámetros que controlan el comportamiento del complemento, como la forma en que el complemento envía datos a la API de Cloud Search y cómo propaga los metadatos y los datos estructurados. Para obtener descripciones de estos parámetros, consulta Parámetros de conectores proporcionados por Google.
Paso 3: Configura Apache Nutch
Abre
conf/nutch-site.xmly agrega los siguientes parámetros:Configuración Parámetro El complemento incluye plugin.includes = textObligatorio. Lista de complementos que se usan. Por lo menos, debe incluir lo siguiente:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xmlproporciona un valor predeterminado, pero debes agregarindexer-google-cloudsearchde forma manual.Nombres de metaetiquetas metatags.names = textOpcional. Lista de etiquetas separadas por comas que se asignan a propiedades en el esquema de fuente de datos correspondiente. Para obtener más información, consulta Metadatos de Nutch-parse.
En el siguiente ejemplo, se muestra la modificación necesaria 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.xmly 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:Configuración Parámetro Ruta de acceso al archivo de configuración de Cloud Search gcs.config.file = pathObligatorio. Ruta completa (absoluta) al archivo de configuración de Cloud Search.
Formato de carga gcs.uploadFormat = textOpcional. Es el formato que usa el complemento para enviar contenido de documentos a la API de Cloud Search. Estos son los valores válidos:
raw: Envía contenido original sin convertir.text: 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. Para obtener más información, consulta el instructivo de Nutch.
Configura las URLs de inicio.
Las URLs de inicio controlan dónde comienza a rastrear tu contenido el rastreador web. El rastreador debe poder acceder a todo el contenido que desees incluir siguiendo los vínculos.
Para configurar las URL de inicio, sigue estos pasos:
- Cambia al directorio de instalación de Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
- Crea un directorio para las URLs:
$ mkdir urls
- Crea un archivo llamado
seed.txty enumera una URL por línea.
- Cambia al directorio de instalación de Nutch:
Configura reglas de seguimiento y de no seguimiento.
Las reglas de URL de seguimiento controlan qué URLs indexa el rastreador. Las reglas de no seguimiento evitan que se rastreen las URLs.
Para configurar estas reglas:
- Cambia al directorio de instalación de Nutch.
- Editar
conf/regex-urlfilter.txt:$ nano conf/regex-urlfilter.txt
Ingresa expresiones regulares con un prefijo "+" o "-":
# 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 #+.
Edita la secuencia de comandos de rastreo.
Si falta el parámetro
gcs.uploadFormato se configura como "raw", debes agregar argumentos-addBinaryContent -base64al comandonutch index. Estos argumentos le indican al módulo del indexador de Nutch que incluya contenido binario en Base64.- Abre la secuencia de comandos
crawlenapache-nutch-1.15/bin. Agrega las opciones como se muestra en este 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 la carga de contenido
Después de configurar el complemento indexador, puedes ejecutarlo en modo local. Usa secuencias de comandos de ./bin para ejecutar un trabajo de rastreo.
En el siguiente ejemplo, se supone que los componentes están en el directorio local. Ejecuta Nutch desde el directorio apache-nutch-1.15:
$ bin/crawl -i -s urls/ crawl-test/ 5
Los registros de rastreo están disponibles en la terminal o en el directorio logs/. Para dirigir el resultado del registro, edita conf/log4j.properties.