我已经开始尝试使用新的Search API,演示运行顺利,然而,有些观点我仍然对于成为搜索领域的局外人感到困惑。
首先是如何构建文档。显然,您不能将每行硬编码到文档中,但我还能做些什么。假如我有一个用户类(我使用的是Java,但我猜Python在这里没什么区别),我会将用户的信息添加到文档中,并能够对地址字段进行全文搜索
class User {
String username;
String password;
String address;
}
在我的数据存储区中,我有这个实体,其中有10000个实例,如果我需要构建这个文档,我是否必须
步骤1:从数据存储中检索10000实例
步骤2:遍历每个用户实体,并创建10000个文档
步骤3:将所有10000个文档添加到索引中,然后我将能够搜索
如果我提到的上述三个步骤是错误的,请纠正我。
如果是这种情况,那么以后每次新用户注册时,我们是否需要创建一个新文档,并添加到索引中?
答案 0 :(得分:6)
不幸的是,我没有玩那么多。我学到了一些东西。
首次实施时,我也想创建大量文档(如您所述)。但仍然坚持到截止日期的例外。所以我结束了upp使用任务队列为我所有的旧记录构建文档。
请记住在搜索文档和数据存储区实体之间创建交叉引用。因此,您可以轻松更新文档记录。并从搜索结果中获取匹配实体。
对于交叉引用,在您的数据存储模型上添加一个名为search_document_id
的新属性,您可以在其中存储doc_id
(我将所有doc_id与数据存储模型名称作为前缀)。并在Document上添加一个文本字段,其中包含实体键作为字符串。
但我会简单地说你是对的。