Maison  >  Article  >  développement back-end  >  Comment rechercher des chaînes avec des préfixes dans App Engine Datastore ?

Comment rechercher des chaînes avec des préfixes dans App Engine Datastore ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 06:46:021040parcourir

How to Find Strings with Prefixes in App Engine Datastore?

Recherche dans App Engine Datastore : recherche de chaînes avec préfixes

Introduction :

Recherche d'entités là où commence le champ de nom avec une chaîne particulière est une exigence courante dans les requêtes de données. Google App Engine Datastore fournit un moyen d'y parvenir, mais cela n'est peut-être pas immédiatement évident. Cet article montre comment créer de telles requêtes et explore des solutions alternatives dans d'autres services App Engine.

Énoncé du problème :

"J'ai essayé de récupérer des lieux dont le nom commence par avec une chaîne spécifique à l'aide d'une requête de filtre, mais cela ne fonctionne pas. Cette fonctionnalité est-elle prise en charge dans Datastore, et si ce n'est pas le cas, quelles sont les solutions possibles ?"

Construction de requête :

L'intuition derrière une requête de préfixe est de filtrer les entités dont le nom est supérieur à la chaîne de préfixe. Cependant, l'utilisation d'un seul filtre d'inégalité (par exemple, Nom > "a") échouera car elle exclura toutes les entités dont le nom commence par le préfixe.

La solution réside dans la combinaison de deux filtres d'inégalité. Nous devons préciser que le nom est à la fois supérieur ou égal à la chaîne de préfixe et inférieur à la chaîne lexicographique suivante.

Exemple de requête :

Récupérons les lieux qui commencez par "li":

q = datastore.NewQuery("Places").Filter("Name >=", "li").Filter("Name <", "lj")

Explication :

  • Le premier filtre garantit que le nom est supérieur ou égal à "li".
  • Le deuxième filtre exclut "li" lui-même en spécifiant que le nom est inférieur à "lj", qui est la chaîne lexicographique suivante après "li".

Solutions alternatives :

Si cette approche ne répond pas à des exigences spécifiques, App Engine propose d'autres services pour les requêtes avancées :

  • BigQuery : exploite la syntaxe SQL et prend en charge des interrogations sur des ensembles de données massifs.
  • BigTable : Une base de données évolutive et hautes performances adaptée aux données de séries chronologiques et aux analyses en temps réel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn