Ce guide de démarrage rapide vous accompagne tout au long du processus complet d'activation de la recherche en texte intégral sur les données HBase, en utilisant une instance Search intégrée basée sur Solr. À l'issue de ce tutoriel, vous aurez :
Créé une table HBase et un index de texte intégral
Défini un mappage de colonnes entre HBase et la collection Search
Écrit un enregistrement dans HBase et interrogé celui-ci via le service Search
Récupéré l'enregistrement original depuis HBase à l'aide d'une rowkey
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
La dernière version de HBase Shell, téléchargée depuis la page d'accès à HBase Enhanced Edition Shell et configurée conformément aux instructions d'utilisation
Une liste d'autorisation configurée pour votre cluster HBase
Une instance Search en cours d'exécution avec la console web accessible
Étape 1 : Créer une table dans votre cluster HBase
Exécutez la commande suivante dans HBase Shell pour créer une table nommée testTable avec une famille de colonnes f :
hbase(main):002:0> create 'testTable', {NAME => 'f'}
Étape 2 : Créer un index dans l'instance Search
Sur la page de détails de l'instance Search, cliquez sur Database Connection.
-
Dans la section Access a Web UI, ouvrez la console web.
Configurez la liste d'autorisation et définissez un mot de passe avant d'accéder à la console web.

-
Créez une collection avec les paramètres suivants, et conservez les valeurs par défaut pour tous les autres paramètres :
Paramètre Valeur config set_indexer_defaultnumShardsNombre de nœuds dans votre cluster 
Étape 3 : Créer un mappage
Un mappage définit quelles colonnes HBase sont synchronisées vers les champs Solr. Dans cet exemple, la colonne f:name de testTable est mappée au champ name_s de la collection democollection, où f représente la famille de colonnes et name le qualificateur de colonne.
Créez un fichier nommé schema.json avec le contenu suivant :
{
"sourceNamespace": "default",
"sourceTable": "testTable",
"targetIndexName": "democollection",
"indexType": "SOLR",
"rowkeyFormatterType": "STRING",
"fields": [
{
"source": "f:name",
"targetField": "name_s",
"type": "STRING"
}
]
}
Champs clés du schéma :
| Champ | Description |
|---|---|
sourceNamespace |
Le namespace HBase. Utilisez "default" pour le namespace par défaut. |
sourceTable |
Le nom de la table source HBase. |
targetIndexName |
Le nom de la collection Solr. |
indexType |
Le type d'index. Définissez-le sur "SOLR". |
rowkeyFormatterType |
Le format de la rowkey. Définissez-le sur "STRING" pour les rowkeys de type chaîne. |
fields[].source |
La colonne HBase au format <column-family>:<column-qualifier>. |
fields[].targetField |
Le nom du champ cible Solr. |
fields[].type |
Le type de données du champ. |
Pour obtenir la liste complète des paramètres pris en charge, consultez la rubrique Gérer les index de texte intégral HBase.
Appliquez le mappage en exécutant la commande suivante :
hbase(main):006:0> alter_external_index 'testTable', 'schema.json'
Une fois la commande exécutée, le mappage entre la colonne source et la colonne de destination est créé.
Étape 4 : Écrire des données dans HBase
Écrivez un exemple d'enregistrement dans testTable :
hbase(main):008:0> put 'testTable', 'row1', 'f:name', 'foo'
Took 0.1697 seconds
Étape 5 : Interroger les données dans l'instance Search
Ouvrez la console web du service Search.
Sélectionnez l'index
democollection.-
Cliquez sur Query pour rechercher les données.

L'enregistrement que vous avez écrit à l'étape 4 apparaît dans les résultats. Chaque résultat inclut un champ ID, qui correspond à la rowkey de la ligne associée dans HBase.
Étape 6 : Rechercher l'enregistrement HBase original
Le service Search ne synchronise que les colonnes définies dans le fichier de mappage, et non la ligne HBase complète. Pour récupérer l'enregistrement intégral, utilisez la valeur ID issue du résultat de recherche comme rowkey et interrogez directement HBase.
Étapes suivantes
Pour en savoir plus sur les options de mappage avancées, consultez la rubrique Gérer les index de texte intégral HBase.