2010-07-22 5 views
2

Je vois un exemple de faire une recherche de chaîne partielle sur le groupe Google GAE (this thread):setFilter() avec un caractère générique?

String term1 = "cow"; 
String term2 = "horse"; 

Query q; 
q.setFilter("name.matches('" + term1 + "%')"); 

si cela fonctionne comme:

« Trouver tous les objets de la classe où la propriété « nom 'commence par terme1"

afin que sélectionnne des choses comme:

cowfoo 
cowgrok 
cowetc 

à droite? Je pourrais alors remplacer term1 par term2, et trouver toutes les instances qui commencent par «horse». Y a-t-il un doc qui l'explique plus? Je veux juste vérifier comment il fonctionne vraiment avant de prendre une décision sur la façon de stocker des chaînes pour mon modèle de données,

Merci

+0

Rappelez-vous simplement que cela ne fonctionne que pour les recherches préfixer pas les recherches génériques arbitraires. –

Répondre

0

Je ne peux pas trouver les documents qui présentent la syntaxe de correspondance de préfixe présenté, mais votre logique est saine. Et il semble que la syntaxe soit prise en charge en fonction du message du groupe google que vous avez cité.

Pour l'exécution de Python, j'effectuerais une correspondance de préfixe en utilisant un filtre d'inégalité. Vous pouvez aussi le faire sur le moteur d'exécution Java comme celui-ci (ce qui est probablement la façon dont la syntaxe % est mis en œuvre):

// prefix is some string object 
q.setFilter("my_string_field >= :1 && my_string_field < :2"); 
q.execute(prefix, (prefix + "\ufffd")); 
+0

Bonjour, je peux être mal interprété, mais ce message (répondu par un googler) suggère que la recherche partielle fonctionne: http://groups.google.com/group/google-appengine-java/browse_thread/thread/f4164017eea91670/aba6ba8fe438c825?lnk = gst & q = chaîne + démarrage + aveC# aba6ba8fe438c825 – user291701

+0

Cool, je suppose que la saveur Java fournit alors du sucre syntaxique. –

+0

Ok, je vais donner un coup de feu dans mon application, je pourrais aussi poster sur le groupe go de Google pour voir si il ya un mot/doc officiel sur le soutien pour cela. Ce serait un désastre si c'est juste une fonctionnalité de laboratoire et il deviendra obsolète dans le futur! – user291701

Questions connexes