インデックスプロパティストア

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

インデックスプロパティストアは検索インデックスのメタデータを永続化します。例えば、最後に更新されたタイムスタンプはインデックスプロパティストアにあります。

インデックスプロパティストアの設定は、App_Config\Sitecore\ContentSearch\Sitecore.ContentSearch.DefaultConfigurations.configファイルのsitecore/contentSearch部分をパッチで当てることで行います。Sitecoreに付属する構成は以下の通りです:

$(1) core web $(1)

デフォルトでは、すべてのインデックスはdatabasePropertyStoreストアを使用するように設定されています。このインデックスプロパティストアはSitecoreデータベースのPropertiesテーブルに基づいています。インスタンスの役割に応じて、coreデータベースまたはwebデータベースSitecore使用できます。

各インデックスにインデックスプロパティストアを割り当てる構成は以下の通りです:

$(id) $(id)

最初のparam1属性を $(id) に設定するか、それに似たような設定をしなければなりません。すべてのインデックスで一意でなければなりません。

インデックスプロパティストアはキー/値ベースのストレージです。キーはマスターキーと保存すべきレコードキーで構成されています。

マスターキーは構成によって異なります。上記の例では、databasePropertyStore定義ノード($(1))のKeyパラメータが参照される最初のパラメータdatabasePropertyStore取得します。

このレコードは 要素で定義されているため、$(id) の値はcontentとなります:

<index id="content" ...>

これがdatabasePropertyStoreキーがすべてのインデックスで一意であることを保証する方法です。また、マスターキーにInstanceNameを付け加えることで、すべての環境でキーが一意であることを保証します。

上記の構成を使えば、次のコードでカスタムプロパティをインデックスプロパティストアに保存できます:

index.PropertyStore.Set("docs-count", "123");

値123は、次のようなキーで保存されます: content_CM01_docs-count、ここでcontentはインデックスID、CM01はSitecoreインスタンス名です。

カスタムインデックスプロパティストア

Sitecoreが提供する実装を使えない場合は、IIndexPropertyStoreインターフェースを実装してカスタムインデックスプロパティストアの実装を作成できます。

  1. IIndexPropertyStoreインターフェースを実装するクラスを作成します。

  2. Sitecore構成のsitecore/contentSearch/indexConfigurationsセクションで指定してください。例えば:

    ... $(1) ... ...
  3. 新しいプロパティストアをインデックスに割り当てます:

    $(id) $(id)
この記事を改善するための提案がある場合は、 お知らせください!