2012-11-09 6 views
5

Vorrei utilizzare l'API di ricerca con un'applicazione che utilizza già un modello definito (db.Model).Utilizzo di Python per le API di ricerca - Big Table di Google App Engine

Ad esempio, supponiamo che il mio modello è simile al seguente:

class Greeting(db.Model): 
    author = db.StringProperty() 
    content = db.StringProperty() 
    date = db.DateTimeProperty() 

Ora come faccio a utilizzare l'API di ricerca per interrogare l'entità Greeting?

Ho letto the documentation ma sinceramente non lo capisco.

Per favore, dammi un esempio molto semplice.

risposta

5

Non è così.

L'API di ricerca deve cercare "documenti" che hai creato, non modelli dal datastore.

  1. documenti Costruire strutturate con i campi per descrivere i dati che desiderate per cercare
  2. creare un indice di documenti che si desidera cercare
  3. creare query per cercare l'indice
  4. richieste di ricerca Crea per eseguire query contro i documenti nella tua applicazione Risultati dei punteggi e personalizza la loro presentazione all'utente

Dovrai scrivere un convertitore che carica i dati dai tuoi modelli e crea documenti ricercabili che possono essere inseriti nell'indice.

E.G. dai documenti per creare un documento:

from google.appengine.api import search 

search.Document(
    doc_id='document id', 
    fields=[search.TextField(name='subject', value='going for dinner'), 
      search.HtmlField(name='body', value='<html>I found a place.</html>'), 
      search.TextField(name='signature', value='brzydka pogoda', language='pl')], 
    language='en') 

Così quel documento ha 3 campi separati che possono essere cercati individualmente.

The Document Class

+0

Grazie. Quindi la classe Document è un nuovo modo per i dati del negozio? C'è qualche vantaggio o svantaggio nell'usare i documenti invece di db.Model (ovviamente tranne Search API)? I documenti sono archiviati usando BigTable? – gather

+0

Sono cose completamente diverse. Quindi non si tratta di vantaggi o svantaggi, si tratta di ciò che è necessario fare e quale opzione lo consente. Non importa in che modo i tuoi dati di origine sono attualmente archiviati, dovrai comunque scrivere un meccanismo per convertirlo in documenti ricercabili. –

Problemi correlati