如果我查询 Google App Engine Search for Go,例如对于前 10 个结果,如何进行后续查询以获取接下来的 10 个结果?没有我知道的游标。
最佳答案
编辑:好消息!自撰写此答案以来,搜索 API 的游标已经完成并发布,因此它已普遍可用。
查看 Cursor
类型。可以在 SearchOptions
中指定 Cursor
值.所以当你调用Index.Search()
, 你可以传递一个 SearchOptions
和一个你之前从 Iterator.Cursor()
获得的 Cursor
.
原始答案如下。
你真倒霉。
一般情况下,搜索 API 支持游标(例如参见 Java Using cursors ),它也在 Go 中实现,但用于搜索的游标 API 不完整且未导出。
有关证据,请参阅 search/search.go 的来源: Iterator
类型(由 Index.List()
和 Index.Search()
方法返回)有一个未导出的 searchCursor
字段(当前行 #602)这正是我们所认为的,它在内部使用,它只是未导出。
如果您检查 SearchOptions
的来源同一源文件 (search/search.go) 中的结构(这是您在启动/执行搜索时可以传递给 Index.Search()
方法的内容):
// Currently starts at line #464:
type SearchOptions struct {
...
// TODO: cursor, offset, maybe others.
}
因此计划添加对搜索游标、偏移量和其他内容的支持,只是尚未实现和导出。希望会在未来的版本中添加。
关于google-app-engine - 谷歌应用引擎搜索 Go : How to paginate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113476/