2012-11-09 18 views
5

Chciałbym użyć Search API z aplikacją, która już używa zdefiniowanego modelu (db.Model).Korzystanie z Search API Python - Google App Engine Big Table

Załóżmy na przykład, że mój model wygląda następująco:

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

Teraz jak mogę używać Search API do kwerendy podmiot Greeting?

Przeczytałem the documentation, ale szczerze mówiąc, nie rozumiem tego.

Podaj mi bardzo prosty przykład.

Odpowiedz

5

Nie musisz.

Interfejs API wyszukiwania musi przeszukać "dokumenty", które zostały utworzone, a nie modele z magazynu danych.

  1. dokumenty Zbuduj strukturę z polami do opisu danych, które chcesz szukać
  2. Tworzenie indeksu dokumentów, które chcesz wyszukać
  3. Construct zapytań do wyszukiwania indeksu
  4. żądań wyszukiwania budowy do uruchamiania kwerend w odniesieniu do dokumentów w aplikacji Wyniki wyników i dostosuj swoją prezentację do użytkownika

Będziesz musiał napisać konwerter, który ładuje dane z twoich modeli i tworzy przeszukiwalne dokumenty, które następnie można umieścić w indeksie.

E.G. od dokumentów do utworzenia dokumentu:

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') 

Ten dokument ma 3 oddzielne pola, które można przeszukiwać pojedynczo.

The Document Class

+0

Dzięki. Więc klasa Dokument jest nowym sposobem na przechowywanie danych? Czy jest jakaś zaleta lub wada korzystania z dokumentów zamiast db.Model (oczywiście oprócz Search API)? Dokumenty są przechowywane przy użyciu BigTable? – gather

+0

Są to zupełnie różne rzeczy. Nie chodzi więc o zalety i wady, chodzi o to, co trzeba zrobić i która opcja na to pozwala. Nie ma znaczenia, jak twoje dane źródłowe są obecnie przechowywane, nadal musisz napisać mechanizm, który przekształci go w dokumenty do przeszukiwania. –