2011-10-05 4 views
1

Je me demandais s'il y avait un moyen de rechercher le datastore pour une entrée. J'ai un tas d'entrées pour les chansons (titre, artiste, note) mais je ne sais pas vraiment comment les rechercher pour le titre de la chanson et l'artiste. Nous prenons un terme de recherche et recherchons toutes les entrées qui "correspondent". Mais nous sommes perdus :(toute aide est très appréciéeGoogle Apps Engine Datastore Rechercher

  • Nous utilisons python

edit1: code actuel est inutile, son une recherche exacte, mais peut vous aider à voir la question

query = song.gql("SELECT * FROM song WHERE title = searchTerm OR artist = searchTerm") 
+2

Vous devez définir ce qui constitue une «correspondance» avant de pouvoir vous aider. L'indexation simple peut fonctionner ici, ou il peut être nécessaire d'utiliser la recherche fulltext, tout dépendant des critères sur lesquels vous souhaitez filtrer. –

+0

Je voulais juste utiliser fulltext si possible, mais je ne sais pas vraiment comment l'implémenter avec le moteur d'application – Aaronf8

+1

Vous n'avez pas encore décrit le type de recherches que vous voulez/devez effectuer sur ces données. –

Répondre

1

Les données de morceau que vous travaillez avec des sons comme un ensemble de données plutôt statiques (principalement des inserts, pas ou peu de mises à jour). Dans ce cas, il y a La technique GAE appelée Relation Index Entity (RIE) qui est un moyen efficace de mettre en œuvre une recherche par mots-clés.

Mais un travail de préparation nécessaire qui est brièvement:

  • construire entité RIE spéciale où vous placez tous les mots clés de recherche de chaque chanson (un à une relation).
  • magasins RIE-les dans StringListProperty qui soutient des recherches comme celle-ci: keywords = 'SearchTerm' (retourne vrai si l'une des valeurs dans la liste keywords matches SearchTerm'`)
  • condition ET fonctionne immédiatement en ajoutant des filtres de multipe comme ci-dessus
  • condition OU a besoin de plus de travail en mettant en place en mémoire de requêtes et fusionner uniquement

Vous trouverez plus de détails sur flux de travail de solution et des exemples de code dans mon blog Relation Index Entities with Python for Google Datastore.

Questions connexes