ミニオンパイプラインの設定
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
インデックスミニオンパイプラインに特定のブロックを追加し、異なるインデックスミニオンが各エンティティタイプを適切に処理できるようにする必要があります。
フルインデックスミニオンおよびインクリメンタルインデックスミニオンパイプライン
IFullIndexMinionPipelineとIncrementalIndexMinionPipelineにそれぞれブロックを挿入し、インデックス化するエンティティタイプごとにドキュメントビューを作成します。
OrdersプラグインのInitializeOrdersIndexingViewBlockやCustomersプラグインのInitializeCustomersIndexingViewBlockを参照として使うことができます。
public override Task
var argument = context.CommerceContext.GetObjects
var orders = argument.Entities?.OfType
var searchViewNames = context.GetPolicy
orders.ForEach(
order =>
{
var documentView = arg.ChildViews.Cast
var email = string.Empty;
var customerId = string.Empty;
if (order.HasComponent
return Task.FromResult(arg); }
Search Viewパイプライン
Search結果ビューを変更したい場合は、SearchViewポリシーで指定されたタグに基づいてSearchPipelineにブロックを追加して、検索結果により多くのデータを追加できます。
OrderプラグインのProcessDocumentSearchResultBlockを参照として使うことができます。
public override async Task
var documents = context.CommerceContext.GetObjects<List
if (!arg.HasPolicy
foreach (var document in documents) { var docId = document"EntityId".ToLowerInvariant().ToString();
var child = arg.ChildViews.OfType
Guid orderGuid; if (!Guid.TryParse(docId, out orderGuid)) { continue; }
var orderId = orderGuid.ToString("B"); var order = await this._findPipeline.Run(new FindEntityArgument(typeof(CommerceEntity), orderId), context) as Order; if (order == null) { continue; }
var entityId = child.Properties.FirstOrDefault(p => p.Name.Equals("EntityId", StringComparison.OrdinalIgnoreCase)); if (entityId != null) { entityId.RawValue = orderId; entityId.UiType = string.Empty; entityId.IsHidden = true; }
var confirmationId = child.Properties.FirstOrDefault(p => p.Name.Equals("OrderConfirmationId", StringComparison.OrdinalIgnoreCase)); if (confirmationId != null) { confirmationId.UiType = "EntityLink"; }
var customerId = child.Properties.FirstOrDefault(p => p.Name.Equals("CustomerId", StringComparison.OrdinalIgnoreCase));
if (customerId != null && order.HasComponent
var status = child.Properties.FirstOrDefault(p => p.Name.Equals("Status", StringComparison.OrdinalIgnoreCase)); var total = new ViewProperty { Name = "total", RawValue = order.Totals.GrandTotal, IsReadOnly = true }; var placedDate = child.Properties.FirstOrDefault(p => p.Name.Equals("OrderPlacedDate", StringComparison.OrdinalIgnoreCase)); var updatedDate = child.Properties.FirstOrDefault(p => p.Name.Equals("DateUpdated", StringComparison.OrdinalIgnoreCase));
child.EntityId = orderId; child.ItemId = orderId;
child.Properties.Clear(); child.Properties.Add(confirmationId); child.Properties.Add(customerId); child.Properties.Add(status); child.Properties.Add(total); child.Properties.Add(placedDate); child.Properties.Add(updatedDate); }
return arg; }