---
title: "Sitecore。Commerce.Plugin。Search。AbstractAsyncIndexFieldHandlerクラス"
slug: "the-sitecore-commerce-plugin-search-abstractasyncindexfieldhandler-class"
abstract: "Sitecore.の詳細な説明。Commerce.Plugin。Search。AbstractAsyncIndexFieldHandlerクラス。"
---
# Sitecore。Commerce.Plugin。Search。AbstractAsyncIndexFieldHandlerクラス

Sitecore.Commerce.Plugin.Search.AbstractAsyncIndexFieldHandlerクラスは、パイプラインを呼び出す非同期のコンポジション値メソッド(ComposeValueAsyncメソッド)を実装する[検索フィールドハンドラー](https://doc.sitecore.com/xp/ja/developers/102/sitecore-experience-commerce/search-field-handlers.html "Search field handlers")を定義しています。このベースフィールドハンドラークラスは、リアルタイムフィールド値をインデックスする必要がある例外的なケースにカスタムフィールドハンドラーで使用できます。

Commerce Engineはデフォルトでこのインデックスフィールドハンドラを使用しません。標準で提供されるインデックスフィールドハンドラは[Sitecoreに基づいています。Commerce.Plugin。Search。AbstractIndexFieldHandler](https://doc.sitecore.com/xp/ja/developers/102/sitecore-experience-commerce/the-sitecore-commerce-plugin-search-abstractindexfieldhandler-class.html "The Sitecore.Commerce.Plugin.Search.AbstractIndexFieldHandler class")クラス。

> !重要パイプラインを非同期に呼び出すインデックスフィールドハンドラは、特に大規模なカタログやマッピングテーブルを持つ展開においてインデックス性能に悪影響を及ぼす可能性があります。可能な限りカスタムフィールドハンドラにはAbstractIndexFieldHandler(the-sitecore-commerce-plugin-search-abstractindexfieldhandler-class.html "The Sitecore.Commerce.Plugin.Search.AbstractIndexFieldHandler class") クラスを使用することを推奨します。

以下はそのSitecore.Commerce.Plugin.Search.AbstractAsyncIndexFieldHandlerの例です:

using System.Collections.Concurrent;
using System.Threading.Tasks;
namespace Sitecore.Commerce.Plugin.Search
{
    /// <summary>
    /// Defines the abstract asynchronous index field handler.
    /// </summary>
    public abstract class AbstractAsyncIndexFieldHandler
    {
        /// <summary>
        /// Composes the field value to be used in the index
        /// </summary>
        /// <param name="source">The source for the value</param>
        /// <param name="context">The context</param>
        /// <returns>The value of the field to be use in the index</returns>
        public abstract Task<object> ComposeValueAsync(object source, ConcurrentDictionary<string, object> context);
    }
}

> !注Sitecore。Commerce.Engine。SDKには、ComposeValueAsyncメソッドを使ってパイプラインを呼び出す方法を示すサンプルParentCategoryDisplayNameHandlerフィールドハンドラが含まれています。サンプルハンドラクラスは、Customer.SampleSolutionファイルのscr/Plugin.Sample.Habitat/Searchフォルダにあります。

Sitecore.Commerce.Plugin.Search.AbstractAsyncIndexFieldHandlerクラスでは:

-   ComposeValueのsourceの議論は、処理対象のエンティティへのアクセスを提供します。
    
-   context辞書は、エンティティの階層的な位置、言語、所属するカタログ、現在の言語などについてさらに詳しい情報を提供します。以下の表はキーと値の説明を示しています。
    
    キー
    
    価値
    
    CommerceContext
    
    現在の環境に関する情報を提供する商業の文脈。
    
    SitecoreItemSearchScopePolicy
    
    検索範囲ポリシーは対象インデックスに関する情報を提供します。
    
    LanguageCode
    
    言語コード。
    
    Parent
    
    直系の親体のID。
    
    MappedCatalog
    
    このエンティティが属するカタログに関する高レベルの情報を提供します。
    
    EntityHierarchy
    
    アイテムに関する階層的情報。与えられたアイテムへの全経路へのアクセスを提供します。
    
    IndexingOptions
    
    現在のインデックス操作に関する情報。ターゲットデータベース名へのアクセスを提供します。
    
    DeterministicId
    
    データプロバイダーでSitecore Item IDとしても使われるエンティティ固有のID。