2012-12-19 16 views
8

试图找出这是一个错误还是设计。当没有为查询指定query_string时,SearchResults对象不按请求的列进行排序。例如,这里是一些记录,借以说明问题:仅当query_string不为空时才应用sort_options?

结果上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)

这是我如何构造我的这两种情况下查询(optionslimitoffsetsort_options参数):

query = search.Query(query_string=query_string, options=options)

+1

你读这已经? http://code.google.com/p/googleappengine/issues/detail?id=7456&q=index%20direction&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log(只是出于好奇,因为在这个例子中他也有一个空的搜索查询) –

+0

谢谢你指出我。看起来这是dev_server的错误。随时让这个答案。 – HorseloverFat

+1

已完成,但在确认它是否为错误之前在线进行测试 –

回答

1

这可能是dev_appserver的错误,因为建议here但可以肯定,你应该在你的Appspot上测试应用程序

+0

是的,我推它住,它按预期工作。谢谢。 – HorseloverFat

-2

可以在你建立的方式中的错误你的查询,因为它没有显示。

可能是因为您没有针对无法使用的情况的索引。

+0

1)对于这两种情况,查询的构建方式都是相同的,并且在一种情况下结果是排序的,而另一种情况下则不是。所以这似乎排除了这种可能性。 – HorseloverFat

+0

2)两种情况都使用相同的索引,因此不是根本原因。 – HorseloverFat

相关问题