我的文档内容为TextField,日期为DateField。我正在尝试获取最新的文档。
我使用以下代码:
index.search(search.Query(query_string='date > epoch',
options=search.QueryOptions(
sort_options=search.SortOptions(
expressions=[search.SortExpression(
expression='date',
direction=search.SortExpression.DESCENDING,
default_value='1970-01-01')])))
这样做的正确方法是什么?
答案 0 :(得分:2)
根据文档,除非您指定不同的排序选项,否则所有文档都按其排名进行排序。并且文档排名被设置为再次添加到索引的时间,除非您指定不同的排名。
如果这是您想要的行为,则无需添加日期字段并按其排序。
答案 1 :(得分:1)
按字段过滤时,您强制使用索引,作为副作用,输出将按该字段排序。
https://cloud.google.com/appengine/docs/python/search/options
当你单独使用查询字符串调用search()方法时, 结果根据默认查询选项返回:
- 按降序排列的顺序返回文件
- 文件一次只能以20个一组的形式返回
- 检索到的文档包含所有原始字段
不知道为什么它不适用于明确的排序选项。