【发布时间】:2015-05-07 23:43:28
【问题描述】:
如果我在 Google App Engine 搜索中查询 Go,例如对于前 10 个结果,如何进行后续查询以获取接下来的 10 个结果?没有我知道的游标。
【问题讨论】:
标签: google-app-engine go
如果我在 Google App Engine 搜索中查询 Go,例如对于前 10 个结果,如何进行后续查询以获取接下来的 10 个结果?没有我知道的游标。
【问题讨论】:
标签: google-app-engine go
编辑:好消息! 自从编写此答案以来,搜索 API 的游标已完成并发布,因此它已普遍可用。
查看Cursor 类型。 Cursor 值可以在SearchOptions 中指定。因此,当您调用Index.Search() 时,您可以传递一个SearchOptions 和一个您之前从Iterator.Cursor() 获得的Cursor。
原答案如下。
你运气不好。
一般来说,搜索 API 支持游标(例如,请参阅 Java Using cursors)并且它也在 Go 中实现,但搜索的游标 API 不完整且未导出。
有关证据,请参见 search/search.go 的来源:Iterator 类型(由 Index.List() 和 Index.Search() 方法返回)有一个未导出的 searchCursor 字段(当前为 #602 行),这正是我们的想法它是,它是在内部使用的,它只是没有导出。
如果您在同一源文件 (search/search.go) 中检查 SearchOptions 结构的来源(这是您在启动/执行搜索时可以传递给 Index.Search() 方法的内容):
// Currently starts at line #464:
type SearchOptions struct {
...
// TODO: cursor, offset, maybe others.
}
因此有计划添加对搜索游标、偏移量等的支持,只是尚未实现和导出。希望会在未来的版本中添加。
【讨论】: