indexプロパティ ストア

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

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

indexプロパティ ストアは、検索インデックスの一部のメタデータを保持します。たとえば、最後に更新されたタイムスタンプはインデックス プロパティ ストアにあります。

indexプロパティ ストアを構成するには、App_Config\Sitecore\ContentSearch\Sitecore.ContentSearch.DefaultConfigurations.configファイルのsitecore/contentSearch部分にパッチを適用します。Sitecoreで提供される設定は次のようになります。

<databasePropertyStore type="Sitecore.ContentSearch.Maintenance.IndexDatabasePropertyStore, Sitecore.ContentSearch">
  <Key>$(1)</Key>
  <Database role:require="!ContentDelivery">core</Database>
  <Database role:require="ContentDelivery">web</Database>
</databasePropertyStore>

<filesystemPropertyStore type="Sitecore.ContentSearch.Maintenance.IndexFileSystemPropertyStore, Sitecore.ContentSearch">
  <Key>$(1)</Key>
</filesystemPropertyStore>

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

indexプロパティstoreを各インデックスに割り当てるには、次の構成を使用します。

<index id="content" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <param desc="name">$(id)</param>
    <param desc="core">$(id)</param>
    <param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />           

最初のparam1属性を $(id) またはそれに類するものに設定する必要があります。これは、すべてのインデックスで一意である必要があります。

インデックス プロパティ ストアは、キー/値ベースのストレージです。キーは、マスター・キーと、保存する必要があるレコードのキーで構成されます。

マスターキーは設定によって異なります。上記の例では、databasePropertyStore定義ノード(<Key>$(1)</Key>)Keyパラメータは、databasePropertyStoreが参照されている場所から最初のパラメータを取得します。

<param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />

このレコードは <index /> 要素で定義されているため、$(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セクションで指定します。例えば:

    <indexConfigurations>
                    ...
                    <customPropertyStore type="[Namespace].CustomPropertyStore, [AssemblyName]">
            <Key>$(1)</Key>
                                    ...
        </customPropertyStore>
                    ...
    </indexConfigurations>
  3. 新しいプロパティ ストアをインデックスに割り当てます。

    <index id="content" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
        <param desc="name">$(id)</param>
        <param desc="core">$(id)</param>
        <param desc="propertyStore" ref="contentSearch/indexConfigurations/customPropertyStore" param1="$(id)" />
この記事を改善するための提案がある場合は、 お知らせください!