Vidéo: Common design patterns with Azure Cosmos DB | Azure Friday 2025
De nombreuses bases de données NoSQL supportent les fonctionnalités de requête et certaines fonctionnalités de recherche. Choisir le bon revient souvent à comprendre les fonctionnalités que vous devez soutenir.
Bien qu'ils soient liés, les requêtes et les recherches sont assez différentes. Une requête renvoie uniquement les résultats correspondant à tous les termes de la requête. La recherche, d'un autre côté, peut inclure des termes facultatifs et fournit généralement des résultats ordonnés par un calcul de pertinence.
Les calculs de pertinence permettent de nombreuses interactions de recherche plus flexibles. Les utilisateurs effectuant les recherches effectuent l'appel final sur le résultat qui leur correspond - le moteur de recherche fournit uniquement des conseils ordonnés.
La recherche et la requête activent des correspondances de valeurs exactes et des requêtes de plage - par exemple, lorsqu'une valeur de champ de date dans un enregistrement se situe entre deux valeurs. Les requêtes Range ne sont pas supportées par de nombreuses bases de données ou moteurs de recherche NoSQL, donc si vous en avez besoin, assurez-vous de vérifier cela dès le début de votre processus de sélection.
La plupart des moteurs de recherche sont conçus pour rechercher des enregistrements entiers et pour limiter leurs termes de requête à des champs spécifiques (comme une date "publiée le"). En règle générale, plusieurs méthodes de requête en texte libre sont disponibles, notamment:
-
Requête Word, où chaque mot est associé par combinaison: Ainsi, "adam fowler blog" est évalué comme adam OR fowler OU blog, avec une correspondance de tous les mots, résultant en un score de pertinence plus élevé que ne le ferait un seul des mots.
-
Requête de phrase, où la phrase entière est traitée comme une seule: Donc "Of Mice and Men" est évalué de sorte que le résultat doit avoir tous les mots, dans le même ordre, pour être un match.
-
Caractère générique: La recherche de "run *" renvoie les résultats de "run", "runs", "running" et "runner". "
-
Stemming: Une recherche de" run "renvoie aussi les résultats pour" ran "et" runs ", mais pas" running "ou" runner "; Recherche de "chat" renvoie également des résultats pour "chats". "
-
Lemmatisation: Cette méthode est plus avancée que l'extraction. Par exemple, la lemmatisation du terme «meilleur» entraîne son
Les moteurs de recherche prennent en charge un format de texte appelé
grammaire de recherche. Dans Google, par exemple, le fait de taper "site: uk ET Adam Fowler AND London" correspond à tous les documents des sites Web du Royaume-Uni qui mentionnent le mot London et l'expression Adam Fowler. Vous pouvez également utiliser des parenthèses pour imbriquer des termes dans des termes, ce qui est particulièrement utile avec les opérateurs booléens tels que AND, OR et NOT.
Parfois, un mécanisme de requête plus structuré est requis. En règle générale, il s'agit d'un format personnalisé et très précis dans un format JSON ou XML. Un bon exemple est trouvé dans les requêtes géospatiales. Il est généralement préférable de définir une zone de délimitation d'une zone correspondant à une recherche sur une carte, en dessinant une zone au lieu de taper les coordonnées dans une barre de recherche en texte libre.
De plus en plus, les utilisateurs utilisent des requêtes géospatiales pour limiter leurs recherches, notamment:
Point:
-
Correspond à un point exact. Rayon de point:
-
Correspond à une distance d'un point (une zone circulaire). Boîte de sélection:
-
Correspond à une zone carrée (comme dans la zone affichée d'une carte). Polygone:
-
Correspond à une forme à main levée ou irrégulière. Un bon exemple est la forme d'un comté ou d'un état. Ce sont essentiellement de grands tableaux de coordonnées dans une zone. intersection polygone-polygone:
-
Correspond à des polygones dans des enregistrements (par opposition à des points dans des enregistrements comme dans les types de requête précédents) avec un polygone de requête. Le polygone de requête touche-t-il celui contenu dans un enregistrement ou le contient-il complètement, ou le manque-t-il entièrement? Ce type de requête nécessite beaucoup de traitement et n'est pas largement supporté, mais il est nécessaire dans l'industrie de la défense. Il est important de noter que les requêtes géospatiales reposent fortement sur des mathématiques complexes sur la façon dont un système de référence de coordonnées particulier (appelé CRS) représente le monde. Par exemple, les appareils GPS utilisent un système appelé WGS84 (également appelé EPSG: 4326), alors que les cartes en ligne utilisent le système CRS EPSG: 900916. Être conscient de la façon dont une base de données stocke ses données géospatiales et les conversions nécessaires est très important; Dans le cas contraire, vous pourriez ne pas avoir de match du tout, ou être à plusieurs centaines de mètres de votre résultat escompté.
Certains moteurs de recherche prennent également en charge des méthodes qui aident les utilisateurs à saisir leurs requêtes. Ceci est le plus évident dans la fonctionnalité de saisie semi-automatique de Google. Vous commencez à taper une requête et Google vous propose les requêtes les plus susceptibles de vous intéresser. De nombreux moteurs de recherche prennent en charge des fonctionnalités similaires.
Beaucoup plus de fonctions de recherche sont disponibles, alors assurez-vous de faire vos recherches avant de sélectionner un moteur de recherche.