私は開始日と終了日を持つZODBカタログクエリを持っています。 end_dateで結果をソートし、次にstart_dateでソートします。Plone - ZODBカタログクエリsort_on複数のインデックス?
end_dateまたはstart_dateのいずれかでソートすると問題ありません。
タプル(start_date,end_date
)で試しましたが、運がありません。
これを達成する方法はありますか、後でカスタム論理を採用する必要がありますか?
私は開始日と終了日を持つZODBカタログクエリを持っています。 end_dateで結果をソートし、次にstart_dateでソートします。Plone - ZODBカタログクエリsort_on複数のインデックス?
end_dateまたはstart_dateのいずれかでソートすると問題ありません。
タプル(start_date,end_date
)で試しましたが、運がありません。
これを達成する方法はありますか、後でカスタム論理を採用する必要がありますか?
一般的な回答は、カタログの脳全体の結果セットのポストホックでなければなりません。zope.sequencesort(PyPI経由、ただしPloneに同梱)などを使用してください。
より複雑な答えは、あなたがする必要が知っている、あなたが何をしているかを知っていればあなただけダウンした最適化のウサギの穴である:あなたがそのあなたの頭脳を並べ替えるないときを確認してください
特に大きな結果セットを扱っていない限り、最適化しないでください。
最適化する場合は、実際に優れた結果(プロファイルとベンチマーク)が得られていることを確認する必要があります。これを行う時間を投資することを正当化できない場合は、最適化を正当化することはできません。
ありがとう!私はあなたの発言に従って私の質問を編集しました。プラス:この特定のケースでは、相対的に少数のアイテムを扱うので、私は 'zope.sequencesort 'で取り除くことができると思います。 –
「Products.ZCatalog.Catalog」を見ると、この機能は存在しないため、ヒットセットのサイズとバッチサイズ/サイズのさまざまな組み合わせに対してあらゆる種類の奇数化(sic)を行うため、制限する。 –
私はあなたの質問にフォーラムにリンクを投稿しましたが、私たちのフォーラム、community.plone.orgに投稿して回答を得られます。 –
あなたの質問のタイトルと本文を編集してください:これはZODBについてではありません。 Plone(または他のZope 2)アプリケーションでProducts.ZCatalogのソートを行う方法について。 ZODBは単なるオブジェクト・パーシスタンス・レイヤーです。このような問合せ結果のソートはもちろん、問合せ機能は提供しません。私はあなたがZODBに言及するそれぞれのケースで "カタログクエリ"を意味すると思います。 – sdupton