1. 検索に関する研究

xConnect検索に対応している方法と演算子

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

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

xConnect検索はIAsyncQueryable すべての手法を実装しておらず、サポートされていないメソッドを使おうとするとSitecore.XConnect.Search.YourLinqIsTooStrongExceptionまたはXdbModelException例外を投げ出します。以下の表は、明示的に記載されていない限り、接触検索とインタラクション検索の両方に適用されます。

同期および非同期拡張メソッドの概要については 、xConnect Client APIを参照してください。

拡張法と演算子サポート行列:

方法/演算子

xConnect

IAsyncQueryable

注記

.Where()

はい

はい

.Any()

はい

はい

.ToArray()

はい

はい

.ToList()

はい

はい

.Count()

はい

はい

.OrderBy()

はい

はい

.OrderByDescending()

はい

はい

.ThenBy()

はい

はい

.ThenByDescending()

はい

はい

.Skip()

はい

はい

ページ ングのxConnect検索結果をご覧ください。

.Take()

はい

はい

ページ ングのxConnect検索結果をご覧ください。

.FirstOrDefault()

はい

はい

.First()

はい

はい

.Single()

はい

はい

.SingleOrDefault()

はい

はい

== および !=

はい

はい

< および >

はい

はい

<= および >=

はい

はい

&& および ||

はい

はい

.GetBatchEnumerator()

はい

いいえ

.GetBatchEnumeratorSync()

はい

いいえ

.ToSearchResults()

はい

いいえ

.WithExpandOptions()

はい

いいえ

.AsEnumerable()

はい

いいえ

同期のみ。

Contains

いいえ

はい

StartsWith

いいえ

はい

EndsWith

いいえ

はい

ToString

いいえ

はい

Equals

いいえ

はい

!注Like() 拡張方法は存在しません。

xConnect検索プロバイダーの制限

xConnect検索プロバイダーは以下のシナリオをサポートしていません:

xConnect検索プロバイダーの制限:

  • シナリオ
  • 検索式内のカスタムメソッド
    Client APIはLINQクエリ式内でカスタムメソッド呼び出しをサポートしていません。例外は Sitecore.XConnect.Search.YourLinqIsTooStrongException または XdbModelException 例外として表示されます。
  • Search for null 値
    。例えば:

var notWebVisits = client.Interactions.Where(c => c.WebVisit() == null);

  • カスタムイベントプロパティでTimespanによるSearch
    (カスタムTimespanプロパティを使用)はサポートされていません:注
    。この制限はイベントにのみ適用され、ファセットには適用されません。

var interactions = await _client.Contacts.Where(c => c.Interactions.Any(i => i.Events.OfType().Any(e => e.CustomCampaignTimespan == TimeSpan.Zero)));

  • まず、LINQ式内のFirstorDefault、Last、LastOrDefault、またはカウントを行ってください:サポートされていません:

// First() inside a LINQ expression is unsupported: var interactions = await _client.Interactions.Where(i => i.Events.First().EngagementValue == 11).ToList();

// FirstOrDefault() inside a LINQ expression is unsupported: var contacts = await _client.Contacts.Where(contact => contact.Interactions.OrderByDescending(x => x.StartDateTime).FirstOrDefault().WebVisit().SiteName == "value");

// Last() inside a LINQ expression is unsupported: var contacts = await _client.Contacts.Where(contact => contact.Interactions.Last().WebVisit().SiteName == value);

  • Timespan
    (例
    、Minutes、Secondsなど)を組み合わせたクエリでTimespanを使うことはできません。サポート済み:サポートなし:

events.OfType(e => e.SomeTypeTimeSpanField > TimeSpan.FromHours(2))

events.OfType(e => e.SomeTypeTimeSpanField.Hours > 10)

  • 複雑なリストへのパスにおける重複名
    。なぜなら、Path.To.Nestedは両リストで同じだからです:

i.Scores().Scores.Any(s=>s.Path.To.Nested.Any()) i.ProfileScores().ProfileScores.Any(s=>s.Path.To.Nested.Any())

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