Requête ou recherche – Pourquoi pas les deux?

(16 octobre 2020)

Deuxième journée de participation à la Événement Couchbase Connect et, comme promis dans, je plonge un peu plus dans certaines des mises à jour des requêtes N1QL qui ont un impact sur la recherche en texte intégral.

En passant, javais lhabitude de travaille chez Couchbase et était le chef de produit qui a lancé le produit de recherche en texte intégral – donc cela me tient à cœur même maintenant. C’est la raison pour laquelle je participe à mon exposé «Recherche de texte simplifiée» vendredi lors du même événement. Plus dinformations à ce sujet à la fin de cet article.

La recherche en texte intégral (FTS aka Search) est un sujet en soi, mais tout ce que vous devez savoir pour cet article est quil sagit dun service ou dun ensemble distinct des fonctionnalités du service dinterrogation de type SQL N1QL de Couchbase. Semblable aux bases de données relationnelles, N1QL exploite un ensemble dindex appelé Global Secondary Indexing (GSI).

Le service de recherche Couchbase possède son propre ensemble dindex et permet une recherche plus flexible, avec une connaissance puissante de la langue, pour du texte dans des champs ou des objets dans des documents JSON.

Discussion de Binh Le Index Flex – Tirez parti de la recherche avec un prédicat SQL standard sans limitation de requête se penche sur les fonctionnalités N1QL qui permettent à une requête dutiliser des index GSI ou FTS selon les besoins. Il sagit dune nouvelle fonctionnalité intéressante et accessible de deux manières.

Les diapositives ci-dessous sont tirées de lexposé de Binh – veuillez consulter lexposé complet pour une plongée beaucoup plus approfondie et quelques exemples en direct.

Les applications peuvent choisir dutiliser la recherche en texte intégral ou les requêtes basées sur GSI

N1QL avec fonction de prédicat de recherche

La première façon dexploiter un index FTS à partir dune recherche N1QL est dajouter un SEARCH () prédicat à la clause WHERE . Cette illustration montre les différentes manières dinterroger les services Couchbase – en fournissant un point dentrée unique en fonction du cas dutilisation.

# 3 dans le graphique ci-dessus montre lappel N1QL à la fonction SEARCH:

WHERE… SEARCH (indexName, text to search for )

Cela limitera les résultats aux correspondances entre tous les prédicats de la clause WHERE et les documents qui ont une correspond à la recherche. Cela utilise les capacités de requête de texte FTS les plus basiques, mais est intentionnellement simple.

N1QL avec indice dindex

Lapproche alternative est présentée dans la diapositive de Binh en bas à droite. Soit dit en passant, cette diapositive est un excellent résumé des approches utilisées dans d’autres bases de données et produits de recherche.

Dans le cas dindices dindex, une simple instruction dans la clause FROM est tout nécessaire pour exploiter les index FTS existants:

FROM crm USE INDEX (USING FTS)

Il pourrait également utiliser explicitement (USING GSI) mais cest la valeur par défaut je crois.

En utilisant cet indice, linterpréteur de requête N1QL vérifiera si les colonnes utilisées dans WHERE clause (par exemple, title et type ) sont indexées par FTS. Si tel est le cas, ils seront utilisés à la place de tout index lié à GSI – sans aucune autre entrée requise.

Notez que les champs de SELECT la clause sera automatiquement tirée de la source do et renvoyés à lutilisateur sans avoir à passer un deuxième appel depuis votre application.

Recherche de préfixe avec LIKE prédicats, plages de dates, plages numériques, etc. sont pris en charge par cette approche et convertis en requêtes FTS puissantes dans les coulisses. Pour plus de détails, consultez le article de blog complet de Binh.

Comment allez-vous lutiliser?

Le flux de travail est simple: indexez les champs pertinents pour la recherche de texte, puis ajoutez lindicateur à vos requêtes existantes. Cest idéal pour le prototypage et les tests avec FTS. Vous pouvez ajouter une petite clause à vos requêtes et ne pas avoir à modifier les applications de manière substantielle.

Ensuite, si vous réalisez que vous souhaitez utiliser la recherche de texte au lieu de N1QL, vous pouvez avoir une idée de la façon dont il sera réactif. Le but de FTS est dêtre plus rapide et de vous donner un ensemble rapide de matchs pertinents et marqués.

Alternativement, si vous utilisez déjà FTS pour alimenter vos applications, vous pouvez essayer de profiter des requêtes N1QL à la place afin de ne pas avoir à faire un appel séparé pour récupérer les valeurs de champ des documents correspondants.

Pourquoi est-ce important?

Chaque entreprise a du mal à maintenir un ensemble croissant de systèmes de plus en plus complexes. Jai toujours été un défenseur dune approche de systèmes modulaires qui permet aux concepteurs de systèmes déchanger différents composants selon les besoins. Cependant, ce nest vraiment idéal que pendant les phases de test et de développement. Pour la planification à long terme, il est très avantageux de standardiser sur un ensemble de capacités de base et de les intégrer aussi étroitement que possible.

Couchbase vise à fournir une plate-forme globale pour tous les besoins en valeur-clé et en documents – y compris les requêtes , recherche de texte, analyse, événementiel, etc. le tout sur une plateforme distribuée et performante Cest plus quun simple discours marketing :). Cette consolidation des capacités permet aux administrateurs et aux développeurs de devenir des experts sur une seule plate-forme au lieu davoir à en apprendre plusieurs.

Si vous pouviez regrouper plusieurs composants du système en une expérience unifiée, je crois que vous verriez un impact sur votre TCO dune manière à laquelle vous ne vous attendez pas nécessairement.

Je pense que cest important et pourquoi je suis optimiste sur ce type dintégration N1QL / Recherche – bravo pour la simplicité!

Jespère que vous rejoindrez ma conférence demain (jour 3 de lévénement) à 10h00 PDT – Recherche de texte simplifiée – Méthodes et architecture où je donne une introduction douce aux concepts de recherche en texte intégral et vous aide à comprendre lensemble architecture du service. Inscrivez-vous ici .

Merci davoir lu!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *