2010-02-26 14 views
1

Est-il possible d'interroger GAE datastore avec filtre similaire à SQL LIKE déclaration? Par exemple, si une classe a un champ de chaîne, et que je veux trouver toutes les classes qui ont un mot-clé spécifique dans cette chaîne, comment puis-je faire cela? On dirait que les matchs de JDOQL() ne fonctionnent pas ... Est-ce que je manque quelque chose?Google App Engine et SQL LIKE

des commentaires, des liens ou des fragments de code sont les bienvenus

+2

Connexe: http://stackoverflow.com/questions/47786/google-app-engine-is-it-possible-to-do-a-gql-like-query –

Répondre

2

Comme disent docs GAE/J, BigTable n'a pas une telle prise en charge native. Vous pouvez utiliser JDOQL String.matches pour "quelque chose%" (par exemple, startsWith). C'est tout ce qu'il y a. Evaluez-le en mémoire sinon.

+0

Merci pour votre réponse. La mauvaise chose à propos de startsWith() est qu'il ne peut pas être utilisé avec des opérateurs d'inégalité sur d'autres champs, donc je vais devoir évaluer en mémoire de toute façon. –

1

Si vous avez beaucoup d'éléments à vous examiner voulez éviter les charger du tout. Le meilleur moyen serait probablement de décomposer les entrées en un temps d'écriture. Si vous êtes à la recherche que par des mots entiers alors c'est facile

Par exemple, « Bonjour tout le monde » devient « Bonjour », « monde » - il suffit d'ajouter à la fois à une propriété de plusieurs valeurs. Si vous avez beaucoup de texte, vous devez éviter de charger la propriété à valeurs multiples car vous en avez seulement besoin pour la recherche d'index. Vous pouvez le faire en créant un "Relation Index Entity" - voir slatkins Bret Google IO parler pour plus de détails.

Vous pouvez également décomposer l'entrée en 3 caractères, 4 caractères etc cordes ou tige mots - peut-être avec un égrappoir Lucene.

+0

vous pouvez trouver des exemples relations Index des entités pour Java et Python dans mes blogs: http://novyden.blogspot.com/2011/02/efficient-keyword-search-with-relation.html http: // novyden. blogspot.com/2011/09/efficient-keyword-search-with-relation.html – topchef