2

カタログの正しい使い方を知りたいです。

約 30 の有用なコンテンツ タイプ、catalog.xml の約 50 のインデックス、および約 45 のメタデータがあります。サイトのデータの大部分を占めるのは 3 種類だけです。数百万ものデータが必要になるかもしれません。私は読んでいて、やるべきことがたくさんありますが、すべてを始める前に基本的な設定をしたいと思っています。

このページには、デフォルト以外のインデックスを portal_catalog に追加してはならないことが記載されています。デフォルトのインデックスを 1 つまたは 2 つ削除するとパフォーマンスがどのように変化するかを説明している人々を読んだことさえあります。

私の質問は次のとおりです。インデックスを異なるカタログに分割し、どのカタログのインデックスをどのタイプに選択するかについてのルールは何ですか?

ここまでで、'site-setup' オブジェクトのすべてのインデックスをカタログ化するために使用される追加のカタログを 1 つ作成しました (portal_catalog でインデックス化されないようにしました)。サイト セットアップ インデックスは非常に頻繁に使用されますが、他のインデックスよりもほとんど変更されないため、より頻繁に再インデックスされるオブジェクトからそれらを分離するのが正しいと考えました。それが主な考慮事項であるかどうかはわかりません。

別の同様の質問 (私が解決したいことの良い例): セカンダリ ワークフローの review_state 変数のようなものをどのように処理しますか? 私は各ワークフローの review_state 変数にインデックスを付けます (そしてそれらをかなり頻繁に検索します) が、私のワークフローのいくつかはほんの数種類でしか使用されません。(私の最も多作なオブジェクトには二次的なワークフローがあります...)

アドバイスをいただければ幸いです。

キャンベル

4

1 に答える 1

3

全てではありませんが、ポイントをいくつか挙げてみます。

portal_catalog にないものは、コレクション、folder_contents ビュー、getFolderContents メソッド、検索、ポートレット コレクション、関連アイテム (私が思うに)、および portal_catalog を使用していると想定されるその他の機能では機能しません。

データをクエリできるようにする必要がある場合は、追加のカタログを使用したいのですが、それはコンテンツ オブジェクトのサブセットにしか影響しません。

インデックス作成操作を高速化するには、collective.indexing を使用します。

カタログを独自のマウント ポイントにマウントして、サイトの他の部分とは異なる方法でキャッシュできるようにします (カタログ全体をキャッシュできるようにします)。その後、専用の zeoserver からカタログを提供することもできます。

また、コンテンツを portal_catalog でカタログ化する必要がない場合 (すべての制約がリストされている場合)、そもそもそれが本格的な (アーキタイプ|器用さ) タイプとして必要かどうかを検討することもできます。よりスリムな repoze.catalog を使用して、目的が何であれ、任意のオブジェクト (非常に単純なデータである可能性があります) をカタログ化し、さらにパフォーマンスを向上させることができます。または、さらに良いことに、Solr を調べて、非常に優れたパフォーマンスを得るためにインデックスを作成してください。

さらに、格納するデータの種類によっては、データ ストアにリレーショナル データベースを使用することも検討できます。しかし、あなたが持っているクエリ、インデックス、データなどの種類はわかりません...

30 の異なるタイプはたくさんのように思えますが、ユース ケースが何であるかはわかりません。共有しますか?おそらく、それを行うためのより良い方法があります。

于 2012-04-17T01:17:10.950 に答える