2012-11-09 4 views
5

이미 정의 된 모델 (db.Model)을 사용하는 응용 프로그램에서 검색 API를 사용하고 싶습니다. 예를 들어검색 API Python 사용 - Google App Engine Big 표

, 내 모델이 같다고 가정 해

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

지금 내가 어떻게 Greeting 개체를 쿼리 검색 API를 사용합니까?

나는 the documentation을 읽었지만 솔직히 나는 그것을 이해하지 못한다.

아주 간단한 예를 들어주세요.

답변

5

그렇지 않습니다.

검색 API는 데이터 저장소의 모델이 아닌 작성한 '문서'를 검색해야합니다.

  1. 빌드 문서는
  2. 당신이
  3. 인덱스를 쿼리를 실행하는
  4. 빌드 검색 요청을 검색하는 쿼리를 구축 검색하고자하는 문서의 인덱스를 작성 검색 할 수는 을하고자하는 데이터를 설명하는 필드로 구성 응용 프로그램의 문서와 비교 점수 결과 및 사용자에게 프레젠테이션을 사용자 정의하십시오.

작성해야합니다. 모델에서 데이터를로드하고 검색 가능한 문서를 작성하여 인덱스에 넣을 수있는 변환기.

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

그들은 완전히 다른 것들입니다. 따라서 이점이나 단점이 아니라 그것이 무엇을해야하고 어떤 옵션이 허용되는지에 관한 것입니다. 원본 데이터가 현재 저장되어있는 방법과 상관없이 검색 가능한 문서로 변환 할 수있는 메커니즘을 작성해야합니다. –