澄清AppEngine Search API的用法

时间:2012-06-07 07:18:59

标签: google-app-engine full-text-search

我已经开始尝试使用新的Search API,演示运行顺利,然而,有些观点我仍然对于成为搜索领域的局外人感到困惑。

首先是如何构建文档。显然,您不能将每行硬编码到文档中,但我还能做些什么。假如我有一个用户类(我使用的是Java,但我猜Python在这里没什么区别),我会将用户的信息添加到文档中,并能够对地址字段进行全文搜索

class User {
   String username;
   String password;
   String address;
}

在我的数据存储区中,我有这个实体,其中有10000个实例,如果我需要构建这个文档,我是否必须

步骤1:从数据存储中检索10000实例

步骤2:遍历每个用户实体,并创建10000个文档

步骤3:将所有10000个文档添加到索引中,然后我将能够搜索

如果我提到的上述三个步骤是错误的,请纠正我。

如果是这种情况,那么以后每次新用户注册时,我们是否需要创建一个新文档,并添加到索引中?

1 个答案:

答案 0 :(得分:6)

不幸的是,我没有玩那么多。我学到了一些东西。

  • 首次实施时,我也想创建大量文档(如您所述)。但仍然坚持到截止日期的例外。所以我结束了upp使用任务队列为我所有的旧记录构建文档。

  • 请记住在搜索文档和数据存储区实体之间创建交叉引用。因此,您可以轻松更新文档记录。并从搜索结果中获取匹配实体。

对于交叉引用,在您的数据存储模型上添加一个名为search_document_id的新属性,您可以在其中存储doc_id(我将所有doc_id与数据存储模型名称作为前缀)。并在Document上添加一个文本字段,其中包含实体键作为字符串。

但我会简单地说你是对的。