2016-07-01 5 views
0

コンテンツTextFieldと日付DateFieldのドキュメントがあります。最新のドキュメントを取得しようとしています。AppEngine検索APIで日付をソート

  • '日付>エポック'の定期検索では、すでに の結果が日付でソートされているようです。それは期待された行動ですか?
  • SortExpressionで明示的にソートしようとすると、結果は特定の順序でソートされていません(devサーバーの場合も同様です)。

私は次のコードを使用しています:

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')]))) 

をそれを行うための正しい方法は何ですか?

答えて

2

ドキュメントによれば、異なるソートオプションを指定しない限り、すべてのドキュメントはそのランクでソートされます。ドキュメントランクは、別のランクを指定しない限り、インデックスに追加された時刻に設定されます。

これが望ましい動作であれば、日付フィールドを追加して並べ替える必要はありません。

1

フィールドでフィルタリングすると、強制的にインデックスを使用し、結果としてそのフィールドで出力がソートされます。

https://cloud.google.com/appengine/docs/python/search/options

あなただけでは、クエリ文字列を使用して検索()メソッドを呼び出すと、 結果は、デフォルトのクエリオプションに応じて返されます。

  • 文書は、の順にソートされた返されます降順ランク
  • 文書は一度に20のグループで返されます
  • 取得されたドキュメントには、すべてのオリジナルが含まれていますlフィールド

明示的な並べ替えオプションでは機能しない理由はわかりません。