Déployer un plug-in d'indexation pour Apache Nutch

Vous pouvez configurer Google Cloud Search afin de fournir du contenu Web à vos utilisateurs en déployant le plug-in d'indexation de Google Cloud Search pour Apache Nutch, un robot d'exploration Open Source.

Lorsque vous lancez l'exploration, Apache Nutch explore le Web et utilise le plug-in indexeur pour importer les versions binaires (ou texte) originales du contenu des documents dans l'API d'indexation Google Cloud Search. L'API d'indexation indexe le contenu et présente les résultats aux utilisateurs.

Remarques importantes

Configuration système requise

Configuration système requise
Système d'exploitation Linux uniquement :
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bits)
Logiciels
  • Apache Nutch version 1.15. Le logiciel du plug-in indexeur inclut cette version de Nutch.
  • Java JRE 1.8 installé sur l'ordinateur qui exécutera le plug-in indexeur
Types de documents Apache Tika Formats de documents compatibles avec Apache Tika 1.18

Déployer le plug-in indexeur

Les étapes suivantes décrivent comment installer le plug-in indexeur et configurer ses composants pour explorer les URL spécifiées et renvoyer les résultats à Cloud Search.

Conditions préalables

Avant de déployer le plug-in d'indexation pour Apache Nutch de Cloud Search, rassemblez les informations nécessaires pour connecter Google Cloud Search à la source de données:

Étape 1: Créez et installez le logiciel du plug-in et Apache Nutch

  1. Clonez le dépôt du plug-in d'indexation à partir de GitHub.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Vérifiez la version souhaitée du plug-in indexeur:

    $ git checkout tags/v1-0.0.5
  3. Créez le plug-in indexeur.

    $ mvn package

    Pour ignorer les tests lors de la création du plug-in indexeur, utilisez mvn package -DskipTests.

  4. Téléchargez Apache Nutch 1.15 et suivez les instructions d'installation d'Apache Nutch.

  5. Extrayez target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (créé à l'étape 2) dans un dossier. Copiez le dossier plugins/indexer-google-cloudsearch dans le dossier des plug-ins d'installation d'Apache Nutch (apache-nutch-1.15/plugins).

Étape 2: Configurez le plug-in indexeur

Pour configurer le plug-in d'indexation pour Apache Nutch, créez un fichier nommé plugin-configuration.properties.

Le fichier de configuration doit spécifier les paramètres suivants, qui sont nécessaires pour accéder à la source de données Google Cloud Search.

Paramètre Paramètres
ID de la source de données api.sourceId = 1234567890abcdef
Obligatoire. ID de la source Google Cloud Search configuré par l'administrateur Google Workspace pour le plug-in indexeur.
Compte de service api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Obligatoire. Fichier contenant la clé du compte de service Google Cloud Search créé par l'administrateur Google Workspace pour assurer l'accessibilité du plug-in indexeur.

Voici un exemple de fichier de configuration avec les paramètres requis.

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

Le fichier de configuration peut également contenir d'autres paramètres qui contrôlent le comportement du plug-in indexeur. Vous pouvez configurer la manière dont le plug-in transfère les données vers l'API Cloud Search, defaultAcl.* et batch.*. Vous pouvez également configurer la manière dont le plug-in d'indexation insère les métadonnées et les données structurées.

Pour obtenir une description de ces paramètres, consultez l'article Paramètres de connecteur fournis par Google.

Étape 3: Configurez Apache Nutch

  1. Ouvrez conf/nutch-site.xml et ajoutez les paramètres suivants:

    Paramètre Paramètres
    Inclusions de plug-ins plugin.includes = text

    Obligatoire. Liste des plug-ins à utiliser. Cela doit inclure au moins les éléments suivants:

    • index-de base
    • indexer
    • indexeur-google-cloudsearch
    conf/nutch-default.xml fournit une valeur par défaut pour cette propriété, mais vous devez également y ajouter manuellement indexer-google-cloudsearch.
    Noms des balises Meta metatags.names = text

    Facultatif. Liste de tags séparés par une virgule correspondant aux propriétés du schéma de la source de données correspondante. Pour en savoir plus sur la configuration d'Apache Nutch pour les balises Meta, consultez cet article.

    L'exemple suivant montre la modification à apporter à 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. Ouvrez conf/index-writers.xml et ajoutez la section suivante:

    <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 section <writer> contient les paramètres suivants:

    Paramètre Paramètres
    Chemin d'accès au fichier de configuration de Google Cloud Search gcs.config.file = path

    Obligatoire. Chemin d'accès complet (absolu) au fichier de configuration Google Cloud Search.

    Format d'importation gcs.uploadFormat = text

    Facultatif. Format dans lequel le plug-in d'indexation transmet le contenu du document à l'API d'indexation de Google Cloud Search. Les valeurs possibles sont les suivantes :

    • raw: le plug-in d'indexation transmet le contenu original du document, sans conversion.
    • text: le plug-in d'indexation transmet le contenu textuel extrait. La valeur par défaut est raw.

Étape 4: Configurer l'exploration du Web

Avant de démarrer une exploration du Web, configurez-la de sorte qu'elle n'inclue que les informations que votre organisation souhaite proposer dans les résultats de recherche. Cette section offre un aperçu. Pour en savoir plus sur la configuration d'une exploration du Web, consultez le tutoriel de Nutch.

  1. Configurez les URL de début.

    Les URL de début contrôlent l'endroit où le robot d'exploration Apache Nutch commence à explorer votre contenu. Les URL de début doivent permettre au robot d'exploration d'accéder à tout le contenu que vous souhaitez inclure dans une exploration spécifique en suivant les liens. Les URL de début sont obligatoires.

    Pour configurer les URL de début:

    1. Remplacez le répertoire de travail par le répertoire d'installation de Nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Créez un répertoire pour les URL:

      $ mkdir urls
    3. Créez un fichier nommé seed.txt et répertoriez les URL en saisissant une URL par ligne.

  2. Configurez des règles pour les URL à suivre et à ne pas suivre.

    Les règles de suivi des URL contrôlent les URL à explorer et à inclure dans l'index Google Cloud Search. Le robot d'exploration vérifie les URL en fonction des règles à suivre. Seules les URL qui correspondent à ces règles sont explorées et indexées.

    Les règles des URL à ne pas suivre empêchent les URL d'être explorées et incluses dans l'index Google Cloud Search. Si une URL contient un format "ne pas explorer", le robot d'exploration ne l'explore pas.

    Pour configurer des règles relatives aux URL à suivre et à ne pas suivre:

    1. Remplacez le répertoire de travail par le répertoire d'installation de Nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Modifiez les règles des URL à suivre/à ne pas suivre dans conf/regex-urlfilter.txt: \

      $ nano conf/regex-urlfilter.txt
    3. Saisissez des expressions régulières avec le préfixe "+" ou "-" pour suivre ou ne pas suivre des formats et des extensions d'URL, comme indiqué dans les exemples suivants. Les expressions ouvertes sont autorisées.

      # 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. Modifiez le script d'exploration.

    Si le paramètre gcs.uploadFormat est manquant ou qu'il est défini sur "brut", vous devez ajouter les arguments "-addBinaryContent -base64" à transmettre à la commande nutch index. Ces arguments indiquent au module d'indexation de Nutch d'inclure du contenu binaire en base64 lorsqu'il appelle le plug-in d'indexation. Le script ./bin/crawl ne contient pas ces arguments par défaut.

    1. Ouvrez le script crawl dans apache-nutch-1.15/bin.
    2. Ajoutez les options -addBinaryContent -base64 au script, comme dans l'exemple suivant:

            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 ..."
      

Étape 5: Démarrez l'exploration du Web et importez du contenu

Après avoir installé et configuré le plug-in indexeur, vous pouvez l'exécuter seul en mode local. Utilisez les scripts de ./bin pour exécuter une tâche d'exploration ou des commandes Nutch individuelles.

L'exemple suivant suppose que les composants requis se trouvent dans le répertoire local. Depuis le répertoire apache-nutch-1.15, exécutez Nutch à l'aide de la commande suivante:

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

Les journaux d'exploration sont disponibles sur la sortie standard (terminal) ou dans le répertoire logs/. Pour diriger la sortie de journalisation ou pour une journalisation plus détaillée, modifiez conf/log4j.properties.