5

我已经开始尝试使用新的 Search API,demo 运行顺利,但是,我仍然对自己是搜索世界的局外人感到困惑。

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

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

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

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

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

第 3 步:将所有 10000 个文档添加到索引中,然后我就可以搜索了

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

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

4

1 回答 1

6

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

  • 当第一次实现它时,我也不得不创建很多文档(如你所描述的)。但是一直遇到截止日期异常。所以我最终使用任务队列为我所有的旧记录构建文档。

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

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

但我要简而言之,你是对的。

于 2012-06-07T07:33:08.147 回答