1

我正在使用游标从 GAE 全文搜索 API 获取结果。问题是光标在每次迭代中保持不变:

cursor = search.Cursor()
files_options = search.QueryOptions(
    limit=5,
    cursor=cursor,
    returned_fields='state'
)

files_dict = {}
query = search.Query(query_string=text_to_search, options=files_options)
index = search.Index(name='title')
while cursor != None:
    results = index.search(query)
    cursor = results.cursor

即使搜索仅返回 18 个结果,光标也不会变为 None

4

1 回答 1

3

问题是你一遍又一遍地得到相同的 5 个结果。每次results = index.search(query)在循环中执行时,您都会检索前五个结果,因为您的查询选项指定了 5 个限制和空游标。您需要创建一个新查询,在每次迭代时启动一个新游标。

cursor = search.Cursor()
index = search.Index(name='title')

while cursor != None:
    options = search.QueryOptions(limit=5, cursor=cursor, returned_fields='state'))
    results = index.search(search.Query(query_string=text_to_search, options=options))
    cursor = results.cursor

看看这个页面的介绍部分:https ://developers.google.com/appengine/docs/python/search/queryclass

于 2013-09-05T13:32:11.273 回答