试图弄清楚这是一个错误还是设计使然。当没有为查询指定 query_string 时,SearchResults 对象不按请求的列排序。例如,这里有一些日志来显示问题:
结果未排序返回 return index.search(query)
:
query_string = ''
sort_options string: search.SortOptions(expressions=[search.SortExpression(expression=u'firstname', direction='ASCENDING', default_value=u'')], limit=36)
返回的结果按以下顺序排序 return index.search(query)
:
query_string = 'test'
sort_options string: search.SortOptions(expressions=[search.SortExpression(expression=u'firstname', direction='ASCENDING', default_value=u'')], limit=36)
这就是我为这两种情况(options
haslimit
和参数)构建查询offset
的方式:sort_options
query = search.Query(query_string=query_string, options=options)