インデックスプロパティストア
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
インデックスプロパティストアは検索インデックスのメタデータを永続化します。例えば、最後に更新されたタイムスタンプはインデックスプロパティストアにあります。
インデックスプロパティストアの設定は、App_Config\Sitecore\ContentSearch\Sitecore.ContentSearch.DefaultConfigurations.configファイルのsitecore/contentSearch部分をパッチで当てることで行います。Sitecoreに付属する構成は以下の通りです:
デフォルトでは、すべてのインデックスはdatabasePropertyStoreストアを使用するように設定されています。このインデックスプロパティストアはSitecoreデータベースのPropertiesテーブルに基づいています。インスタンスの役割に応じて、coreデータベースまたはwebデータベースSitecore使用できます。
各インデックスにインデックスプロパティストアを割り当てる構成は以下の通りです:
最初のparam1属性を $(id) に設定するか、それに似たような設定をしなければなりません。すべてのインデックスで一意でなければなりません。
インデックスプロパティストアはキー/値ベースのストレージです。キーはマスターキーと保存すべきレコードキーで構成されています。
マスターキーは構成によって異なります。上記の例では、databasePropertyStore定義ノード(
このレコードは
<index id="content" ...>
これがdatabasePropertyStoreキーがすべてのインデックスで一意であることを保証する方法です。また、マスターキーにInstanceNameを付け加えることで、すべての環境でキーが一意であることを保証します。
上記の構成を使えば、次のコードでカスタムプロパティをインデックスプロパティストアに保存できます:
index.PropertyStore.Set("docs-count", "123");
値123は、次のようなキーで保存されます: content_CM01_docs-count、ここでcontentはインデックスID、CM01はSitecoreインスタンス名です。
カスタムインデックスプロパティストア
Sitecoreが提供する実装を使えない場合は、IIndexPropertyStoreインターフェースを実装してカスタムインデックスプロパティストアの実装を作成できます。
-
IIndexPropertyStoreインターフェースを実装するクラスを作成します。
-
Sitecore構成のsitecore/contentSearch/indexConfigurationsセクションで指定してください。例えば:
... ...$(1) ... -
新しいプロパティストアをインデックスに割り当てます:
$(id) $(id)