---
title: "xConnect検索に対応している方法と演算子"
slug: "supported-methods-and-operators-for-xconnect-search"
abstract: "xConnect Client APIを使って連絡先ややり取りを検索する際のサポート方法とサポートされていない方法とオペレーターの概要。"
---
# xConnect検索に対応している方法と演算子

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

同期および非同期拡張メソッドの概要については [、xConnect Client API](https://doc.sitecore.com/xp/ja/developers/105/sitecore-experience-platform/xconnect-client-api-overview.html "xConnect Client API overview")を参照してください。

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

方法/演算子

xConnect

IAsyncQueryable

注記

.Where()

はい

はい

.Any()

はい

はい

.ToArray()

はい

はい

.ToList()

はい

はい

.Count()

はい

はい

.OrderBy()

はい

はい

.OrderByDescending()

はい

はい

.ThenBy()

はい

はい

.ThenByDescending()

はい

はい

.Skip()

はい

はい

ページ [ングのxConnect検索結果](https://doc.sitecore.com/xp/ja/developers/105/sitecore-experience-platform/paginatingxconnect-search-results.html)をご覧ください。

.Take()

はい

はい

ページ [ングのxConnect検索結果](https://doc.sitecore.com/xp/ja/developers/105/sitecore-experience-platform/paginatingxconnect-search-results.html)をご覧ください。

.FirstOrDefault()

はい

はい

.First()

はい

はい

.Single()

はい

はい

.SingleOrDefault()

はい

はい

\== および !=

はい

はい

< および \>

はい

はい

<= および \>=

はい

はい

&& および ||

はい

はい

.GetBatchEnumerator()

はい

いいえ

.GetBatchEnumeratorSync()

はい

いいえ

.ToSearchResults()

はい

いいえ

.WithExpandOptions()

はい

いいえ

.AsEnumerable()

はい

いいえ

同期のみ。

Contains

いいえ

はい

StartsWith

いいえ

はい

EndsWith

いいえ

はい

ToString

いいえ

はい

Equals

いいえ

はい

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

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

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

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

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

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

-   カスタムイベントプロパティでTimespanによるSearch:以下のクエリ(カスタムTimespanプロパティを使用)はサポートされていません:注:イベントにはデフォルトのDurationプロパティを引き続き使用できます。この制限はイベントにのみ適用され、ファセットには適用されません。

var interactions = await \_client.Contacts.Where(c => c.Interactions.Any(i => i.Events.OfType<CampaignEvent>().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:OfType演算子とTimespanプロパティ(例:Hours、Minutes、Secondsなど)を組み合わせたクエリでTimespanを使うことはできません。サポート済み:サポートなし:

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

events.OfType<SomeEventType>(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())