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

En déployant le plug-in indexeur Cloud Search pour Apache Nutch (robot d'exploration Open Source), vous pouvez proposer du contenu Web à vos utilisateurs via Google Cloud Search.

Lorsque vous lancez l'exploration du Web, Apache Nutch explore le Web et utilise le plug-in indexeur pour importer les versions binaires (ou texte) originales de ces contenus dans l'API Google Cloud Search. L'API Cloud Search indexe alors les contenus et les diffuse à vos utilisateurs.

Remarques importantes

Avant de déployer le plug-in indexeur, tenez compte des points suivants.

Configuration requise

Configuration requise
Système d'exploitation Linux uniquement :
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bits)
Logiciel
  • Apache Nutch version 1.15. Cette version de Nutch est d'ailleurs incluse dans le logiciel du plug-in.
  • Java JRE 1.8 installé sur l'ordinateur qui exécutera le plug-in indexeur
Types de documents Apache Tika Formats de documents acceptés par Apache Tika 1.18

Déployer le plug-in indexeur

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

Prérequis

Avant de déployer le plug-in indexeur, rassemblez les informations nécessaires pour connecter Cloud Search et la source de données :

Étape 1 : Créer et installer le logiciel du plug-in et Apache Nutch

  1. Clonez le dépôt du plug-in indexeur à 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 du plug-in indexeur que vous souhaitez utiliser :

    $ 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, 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 dans un dossier. Copiez le dossier plugins/indexer-google-cloudsearch dans le dossier plugins d'Apache Nutch (apache-nutch-1.15/plugins).

Étape 2 : Configurer le plug-in d'indexation

Pour configurer le plug-in, créez un fichier nommé plugin-configuration.properties. Le fichier de configuration doit spécifier les paramètres suivants pour accéder à la source de données Cloud Search.

Paramètre Paramètre
ID de la source de données api.sourceId = 1234567890abcdef
Obligatoire. ID de la source 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 Cloud Search créé par l'administrateur Google Workspace pour assurer l'accessibilité du plug-in indexeur.

L'exemple suivant présente un exemple de fichier de configuration :

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

Le fichier de configuration peut également contenir des paramètres qui contrôlent le comportement du plug-in, par exemple la manière dont il transmet les données à l'API Cloud Search et dont il insère les métadonnées et les données structurées. Pour obtenir une description de ces paramètres, consultez Paramètres de connecteur fournis par Google.

Étape 3 : Configurer Apache Nutch

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

    Paramètre Paramètre
    Propriété "plugin.includes" plugin.includes = text

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

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml fournit une valeur par défaut, mais vous devez y ajouter manuellement indexer-google-cloudsearch.
    Noms des balises Meta metatags.names = text

    Facultatif. Liste de tags séparés par une virgule associés à des propriétés du schéma de la source de données correspondante. Pour en savoir plus, consultez Nutch-parse metatags.

    L'exemple suivant montre la modification à apporter dans le fichier 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ètre
    Chemin d'accès au fichier de configuration Cloud Search gcs.config.file = path

    Obligatoire. Chemin (absolu) complet du fichier de configuration Cloud Search.

    Format d'importation gcs.uploadFormat = text

    Facultatif. Format utilisé par le plug-in pour transmettre le contenu du document à l'API Cloud Search. Les valeurs valides sont les suivantes :

    • raw : transmet le contenu original, sans conversion.
    • text : transmet le contenu extrait, au format texte. La valeur par défaut est raw.

Étape 4 : Configurer l'exploration du Web

L'exploration du Web doit d'abord être configurée pour n'inclure que les informations que votre organisation souhaite proposer aux utilisateurs. Pour en savoir plus, consultez le tutoriel Nutch.

  1. Configurer les URL de début

    Les URL de début indiquent au robot d'exploration Web où commencer l'exploration de votre contenu. Le robot doit pouvoir accéder à l'ensemble du contenu que vous souhaitez inclure en suivant les liens.

    Pour configurer les URL de début :

    1. Accédez au 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 listez-y une URL par ligne.
  2. Configurer des règles relatives aux URL à suivre et à ne pas suivre

    Les règles des URL à suivre définissent les URL que le robot d'exploration indexe. Les règles des URL à ne pas suivre définissent les URL qui ne seront pas explorées.

    Pour configurer ces règles, procédez comme suit :

    1. Accédez au répertoire d'installation de Nutch.
    2. Modifier conf/regex-urlfilter.txt :
      $ nano conf/regex-urlfilter.txt
    3. Utilisez des expressions régulières avec le préfixe "+" ou "-" :

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

    En l'absence du paramètre gcs.uploadFormat ou si la valeur définie est "raw", vous devez ajouter les arguments -addBinaryContent -base64 à la commande nutch index. Ces arguments indiquent au module d'indexation de Nutch d'inclure du contenu binaire en Base64.

    1. Ouvrez le script crawl dans apache-nutch-1.15/bin.
    2. Ajoutez les options comme indiqué dans cet exemple :

            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émarrer l'exploration du Web et importer du contenu

Une fois que vous avez configuré le plug-in indexeur, vous pouvez l'exécuter en mode local. Utilisez les scripts de ./bin pour exécuter une tâche d'exploration.

L'exemple suivant suppose que les composants se trouvent dans le répertoire local. Exécutez Nutch à partir du répertoire apache-nutch-1.15 :

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

Les journaux d'exploration sont disponibles dans le terminal ou dans le répertoire logs/. Pour diriger la sortie de journalisation, modifiez conf/log4j.properties.