5

定義済みのモデル ( ) を既に使用しているアプリケーションで Search API を使用したいと考えていますdb.Model

たとえば、モデルが次のようになっているとします。

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

Search API を使用してGreetingエンティティをクエリするにはどうすればよいでしょうか。

私はドキュメントを読みましたが、正直なところ、私はそれを理解していません。

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

4

1 に答える 1

5

あなたはそうしない。

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

  1. 検索するデータを説明するフィールドで構造化されたドキュメントを作成します
  2. 検索するドキュメントのインデックスを作成します
  3. インデックスを検索するためのクエリを作成します
  4. 検索リクエストを作成して、アプリケーションのスコア結果のドキュメントに対してクエリを実行し、ユーザーへのプレゼンテーションをカスタマイズします

モデルからデータをロードし、インデックスに入れることができる検索可能なドキュメントを作成するコンバーターを作成する必要があります。

ドキュメントを作成するためのドキュメントからのEG:

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つの個別のフィールドがあります。

ドキュメントクラス

于 2012-11-09T10:13:36.873 に答える