使用搜索 API Python - Google App Engine 大表

Posted

技术标签:

【中文标题】使用搜索 API Python - Google App Engine 大表【英文标题】:Using Search API Python - Google App Engine Big Table 【发布时间】:2012-11-09 09:29:06 【问题描述】:

我想将 Search API 用于已在使用定义模型 (db.Model) 的应用程序。

例如,假设我的模型如下所示:

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

现在如何使用 Search API 来查询 Greeting 实体?

我读过the documentation 但老实说我不明白。

请给我一个非常简单的例子。

【问题讨论】:

【参考方案1】:

你没有。

搜索 API 需要搜索您创建的“文档”,而不是数据存储中的模型。

    构建具有字段结构的文档以描述您希望的数据 搜索 创建要搜索的文档索引 构造查询以搜索索引 构建搜索请求以针对应用程序中的文档运行查询评分结果和 自定义他们向用户展示的内容

您必须编写一个转换器,从您的模型中加载数据并创建可搜索的文档,然后将这些文档放入索引中。

例如从文档中创建文档:

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

【讨论】:

谢谢。那么 Document 类是存储数据的一种新方式吗?使用文档代替 db.Model 有什么优点或缺点(当然搜索 API 除外)?使用 BigTable 存储文档? 它们是完全不同的东西。因此,这不是优点或缺点的情况,而是关于您需要做什么以及哪个选项允许这样做。无论您的源数据当前如何存储,您仍然需要编写一种机制将其转换为可搜索的文档。

以上是关于使用搜索 API Python - Google App Engine 大表的主要内容,如果未能解决你的问题,请参考以下文章

从 Google People API 搜索中获取姓名和电话号码

2小时后Google Drive Python API可恢复上传错误401

在 Python 中使用 Gmail API 使用 message-id 搜索电子邮件

Python Google Map API提供的OSM_type与文档不匹配

使用Javascript从Google Places搜索api获取纬度和经度

Google 自定义搜索 API - 反向图像搜索