2012-11-09 12 views
5

すでに定義済みのモデル(db.Model)を使用しているアプリケーションでSearch APIを使用したいと思います。例えば検索API Pythonを使用する - Google App Engine Big Table

、私のモデルは、このようになっていることとします

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

が今どのように私は Greetingエンティティを照会する検索APIを使用していますか?

私はthe documentationを読んだが、正直なところ私はそれを理解していない。

非常に簡単な例を教えてください。

答えて

5

あなたはしていません。

検索APIは、データストアのモデルではなく、作成した「ドキュメント」を検索する必要があります。あなたは

  • はあなたが
  • がインデックスにクエリを実行するための
  • ビルド検索要求を検索するためのクエリを構築検索したい文書のインデックスを作成して検索し を希望するデータを記述するためのフィールドで構成

    1. ビルドドキュメントあなたのアプリケーションのドキュメントと比較して結果を得て ユーザーにプレゼンテーションをカスタマイズする

    モデルからデータをロードし、索引に入れることができる検索可能な文書を作成するコンバータです。

    E.G.

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

    このドキュメントには、個別に検索できる3つのフィールドがあります。

    The Document Class

  • +0

    ありがとう。だからDocumentクラスはストアデータの新しい方法ですか? db.Model(もちろんSearch APIを除く)の代わりにドキュメントを使用するメリットとデメリットはありますか?ドキュメントはBigTableを使用して保存されますか? – gather

    +0

    彼らはまったく違うものです。だから、利点や欠点のケースではなく、それはあなたが何をする必要があり、どのオプションがそれを可能にするかということです。ソースデータが現在どのように格納されているかは関係ありませんが、検索可能なドキュメントに変換するメカニズムを作成する必要があります。 –

    関連する問題