---
title: "検索に関する研究"
slug: "work-with-search"
abstract: "検索の作業に関する情報:インデックス作成、同期・非同期検索、その他関連の詳細。"
---
# 検索に関する研究

xConnectクライアントAPIは、[連絡先](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/search-contacts.html "Search contacts") ( client.Contacts)や [インタラクション](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/search-interactions.html "Search interactions") ( client.Interactions)を検索できます。インタラクション検索は行動検索とも呼ばれます。イベントやファセットを直接クエリすることはできません。以下の表に示されるように、コンタクトやインタラクションを中心にクエリを構成する必要があります。

クエリ要件

クエリ

すべてのロンドン住所を入手

AddressList面にロンドンの住所が含まれている連絡先をすべて取得しましょう

昨日に発生したすべてのページ訪問数を取得してください

昨日起こったすべてのインタラクションを取得し、イベントは PageViewEvent

過去1週間のすべての「ダウンロード」イベントを入手できます

過去1週間に起こったすべてのやり取りと DownloadEvent イベントの記録を取得してください

## インデックス作成

> !重要インデックス作成は処理サーバーではなく、専用の検索インデクサーによって行われます。これはバージョン8.2以前のバージョンからの大きな変更です。

インデックス作成やxConnect検索のアーキテクチャについての詳細は、以下をご覧ください:

-   [Searchおよびインデックスフロー](https://doc.sitecore.com/xp/en/developers/100/platform-administration-and-architecture/en/indexing-and-segmentation.html)
-   [xConnectインデックス](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/the-xdb-search-index.html "The xDB search index")

## 同期探索および非同期探索

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

## xConnectはSitecoreを使用していません。コンテンツ検索

xConnect検索はSitecore.ContentSearchに依存し**ません**。xConnect検索とコンテンツSearchは別々のフレームワークで、APIやインデックス作成の仕組みが別々です。詳細については、[検索およびインデックスの概要](https://doc.sitecore.com/xp/en/developers/100/platform-administration-and-architecture/en/search-and-indexing-overview.html)を参照してください。

## Searchは大文字に区別されません

Searchは基本的に大文字を区別せず、結果の検索を容易にしています。これはSolrスキーマレベルで設定されています。

## 参加のサポートは検索提供者によって異なります

Solrは連絡先間の接続やインタラクションのサポートです。Azure Search現在は接続をサポートしていません。

以下の例は、特定のメディアアイテムをダウンロードした連絡先を検索する方法を示しています。クエリはジョインを使用します。

var mediaItemId = Guid.Parse("bf34c300-0c0a-4aab-9055-97854f17d134");

var query = client.Contacts.Where(c => c.Interactions.Any(x => x.Events.OfType<DownloadEvent>().Any(d => d.ItemId == mediaItemId)));

var results = await query.GetBatchEnumerator(10);

もし検索プロバイダーが参加をサポートしていない場合は、連絡先のInteractionsCache面を必ず使う必要があります:

var mediaItemId = Guid.Parse("bf34c300-0c0a-4aab-9055-97854f17d134");

var query = client.Contacts.Where(c => c.InteractionsCache().InteractionCaches.Any(x => x.DownloadEventItemIds.Any(f => f == mediaItemId)));

var results = await query.GetBatchEnumerator(10);