xConnect検索に対応している方法と演算子
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
xConnect検索はIAsyncQueryable
同期および非同期拡張メソッドの概要については 、xConnect Client APIを参照してください。
拡張法と演算子サポート行列:
方法/演算子
xConnect
IAsyncQueryable
注記
.Where()
はい
はい
.Any()
はい
はい
制限については 「Azure Searchリストのフィールド制限 」セクションを参照してください。
.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
- まず、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
events.OfType
- 複雑なリストへのパスにおける重複名。なぜなら、Path.To.Nestedは両リストで同じだからです:
i.Scores().Scores.Any(s=>s.Path.To.Nested.Any()) i.ProfileScores().ProfileScores.Any(s=>s.Path.To.Nested.Any())
Azure Searchプロバイダーの制限
以下の制限は、xConnect検索のプロバイダー Azure Search特有のものです。
Azure Search提供者の限界:
- シナリオ
- contact.Interactions.Any(): Azure Searchプロバイダーは結合をサポートしていません。詳細については、「検索と連絡先のSearchの使い方(結合の有無の例を含む)」をご覧ください。重要 このAzure Search制限は使用できるセグメンテーションルールに影響します。例えば、メールイベント(メールを開く、リンクをクリックするなど)で連絡先を絞り込むことはできません。
- 部分テキスト検索 Searchプロバイダーでサポートされていません。例えば:
client.Contacts.Where(c => c.TextMatch("Mar"))
Azure Search分野の制限一覧
以下の表は、Azure Searchにおける 複素型の制限 に関するものです。
9.0アップデート2
9.0アップデート2では、複雑な型のリスト内の比較の改善が導入されました。以下はこれらの型に対する演算子のサポートを示しています:
Azure Search 9.0 アップデート2のフィールドサポートマトリックスリスト:
種類
==
||
&&
!
>
>=
<
<=
!=
文字列、列挙、またはGuidのネストリスト
はい
はい
はい
はい
いいえ
いいえ
いいえ
いいえ
いいえ
複雑な型やintfloat
はい
はい
はい
はい
はい
はい
はい
はい
はい
以下はこれらのタイプにおける演算子の使用例を示します。
Azure Search 9.0アップデート2のフィールド例一覧:
- 種類
- 文字列、列挙、Guidのネストリスト:サポートなし:サポート済み:
c=>c.SomeFacet().SomeList.Any(e=>e!="hello") c=>c.SomeFacet().SomeList.Any(e=>e!="hello"||e!="world")
c=>c.SomeFacet().SomeList.Any(e=>e=="hello") c=>c.SomeFacet().SomeList.Any(e=>e=="hello"||e=="world")
- 複雑な型や int や floatのような単純な型のネストリスト:サポート:
c=>c.SomeFacet().SomeList.Any(e=>e.Property1>2) c=>c.SomeFacet().SomeList.Any(e=>e.Property1!=2) c=>c.SomeFacet().SomeList.Any(e=>e.Property1==2&&e.Property2=="string") c=>c.SomeFacet().SomeList.Any(e=>e.Property1==2||e.Property2=="string")
- 別のリストを含むリスト()を使用できます。サポート対象:
someList.Any(v=>v.NestedList.Any(u=>u.SomeField==2))
- Any()述語内の文字列、エナグ、またはGuidのネストリスト()述語内で == と || を使用可能です。サポート:
c=>c.SomeFacet().SomeList.Any(e=>e=="hello") c=>c.SomeFacet().SomeList.Any(e=>e=="hello"||e=="world")
- OfType
コールの後に続くAny()。サポート:
i=>i.Events.OfType
9.0初期リリースと9.0アップデート1
以下はこれらのタイプのオペレーターサポートを示しています:
Azure Search 9.0初期リリースおよび9.0アップデート1のフィールドサポートを一覧にします。
種類
==
||
&&
!
>
>=
<
<=
!=
Any()述語内のネストリスト
はい
いいえ
いいえ
いいえ
いいえ
いいえ
いいえ
いいえ
いいえ
以下はこれらのタイプにおける演算子の使用例を示します。
Azure Search 9.0初期リリースおよび9.0アップデート1のフィールド例を示します。
- 種類
- 別のリストを含むリスト()を使用できます。サポート対象:
someList.Any(v=>v.NestedList.Any(u=>u.SomeField==2))
- Any()述語内のネストリスト:サポートなし:サポート済み:
c=>c.SomeFacet().SomeList.Any(e=>e.Property1>2) c=>c.SomeFacet().SomeList.Any(e=>e.Property1!=2) c=>c.SomeFacet().SomeList.Any(e=>e.Property1==2&&e.Property2=="string") c=>c.SomeFacet().SomeList.Any(e=>e.Property1==2||e.Property2=="string")
MyListProperty.Any(v=>v.SomeField==2) c=>c.SomeFacet().SomeList.Any(e=>e.Property1==2)|| c=>c.SomeFacet().SomeList.Any(e=>e.Property2=="string")
- OfType
コールの後に続くAny()、基本クラスを参照することはできません。サポートされていません、Any()は>と組み合わせて使うことはできません。NoteDefinitionIdはOutcomeのプロパティではなく、ベースクラスのプロパティです。
i=>i.Events.OfType
i=>i.Events.OfType