Azure Search のインデクサーIndexers in Azure Search

Azure Search の "インデクサー" は、検索可能なデータとメタデータを Azure 外部データ ソースから抽出し、インデックスとデータ ソース間のフィールドのマッピングに基づいてインデックスを作成するクローラーです。An indexer in Azure Search is a crawler that extracts searchable data and metadata from an external Azure data source and populates an index based on field-to-field mappings between the index and your data source. この方法は、インデックスにデータを追加するコードを記述することなく、サービスがデータをプルするため、「プル モデル」と呼ばれることもあります。This approach is sometimes referred to as a 'pull model' because the service pulls data in without you having to write any code that adds data to an index.

インデクサーは、データ ソースの種類またはプラットフォームに基づきます。Azure 上の SQL Server、Cosmos DB、Azure Table Storage、Blob Storage を対象としたインデクサーがあります。Indexers are based on data source types or platforms, with individual indexers for SQL Server on Azure, Cosmos DB, Azure Table Storage and Blob Storage. Blob Storage インデクサーには、BLOB コンテンツ タイプに固有のプロパティがあります。Blob storage indexers have additional properties specific to blob content types.

データ取り込みの唯一の手段としてインデクサーを使用したり、インデクサーの使用を含む手法を組み合わせて使用したりして、インデックス内のフィールドの一部だけを読み込むことができます。You can use an indexer as the sole means for data ingestion, or use a combination of techniques that include the use of an indexer for loading just some of the fields in your index.

インデクサーは、オンデマンドで実行することも、5 分ごとに実行される定期的なデータ更新スケジュールで実行することもできます。You can run indexers on demand or on a recurring data refresh schedule that runs as often as every five minutes. より頻繁に更新するには、Azure Search と外部データ ソースの両方のデータを同時に更新するプッシュ モデルが必要です。More frequent updates require a push model that simultaneously updates data in both Azure Search and your external data source.

インデクサーの作成と管理の方法Approaches for creating and managing indexers

インデクサーの作成と管理は、次の方法で行うことができます。You can create and manage indexers using these approaches:

最初は、新しいインデクサーがプレビュー機能として発表されます。Initially, a new indexer is announced as a preview feature. プレビュー機能は、まず API (REST および .NET) に導入され、その後、一般公開を経てポータルに統合されます。Preview features are introduced in APIs (REST and .NET) and then integrated into the portal after graduating to general availability. 新しいインデクサーを評価する場合は、コードの作成を検討してください。If you're evaluating a new indexer, you should plan on writing code.

アクセス許可Permissions

インデクサーに関連するすべての操作 (状態や定義の GET 要求を含む) には、管理者 API キーが必要です。All operations related to indexers, including GET requests for status or definitions, require an admin api-key.

サポートされるデータ ソースSupported data sources

インデクサーは、Azure 上のデータ ストアをクロールします。Indexers crawl data stores on Azure.

基本的な構成手順Basic configuration steps

インデクサーで実行できる機能は、データ ソースごとに異なります。Indexers can offer features that are unique to the data source. そのためインデクサーやデータ ソースの構成には、インデクサーの種類ごとに異なる点があります。In this respect, some aspects of indexer or data source configuration will vary by indexer type. しかし基本的な成り立ちと要件は、すべてのインデクサーに共通です。However, all indexers share the same basic composition and requirements. 以降、すべてのインデクサーに共通の手順について取り上げます。Steps that are common to all indexers are covered below.

手順 1:データ ソースを作成するStep 1: Create a data source

インデクサーは、データ ソース オブジェクトからデータ ソース接続を取得します。An indexer obtains data source connection from a data source object. データ ソース定義では、接続文字列と、場合によっては資格情報が提供されます。The data source definition provides a connection string and possibly credentials. データ ソースの作成 REST API または DataSource クラスを呼び出して、リソースを作成します。Call the Create Datasource REST API or DataSource class to create the resource.

データ ソースは、それを使用するインデクサーとは別に構成および管理されます。これは、1 つのデータ ソースを複数のインデクサーで使用して、一度に複数のインデックスを読み込めることを意味します。Data sources are configured and managed independently of the indexers that use them, which means a data source can be used by multiple indexers to load more than one index at a time.

手順 2:インデックスを作成するStep 2: Create an index

インデクサーは、データ インジェストに関連したいくつかのタスクを自動化しますが通常、そこにはインデックスの作成は含まれていません。An indexer will automate some tasks related to data ingestion, but creating an index is generally not one of them. 前提条件として、定義済みのインデックスが必要です。加えてそのフィールドは、外部データ ソース内のフィールドと一致している必要があります。As a prerequisite, you must have a predefined index with fields that match those in your external data source. 各フィールドでは、名前とデータ型が一致する必要があります。Fields need to match by name and data type. インデックス構築の詳細については、インデックスの作成 (Azure Search REST API) または Index クラスに関するページを参照してください。For more information about structuring an index, see Create an Index (Azure Search REST API) or Index class. フィールドの関連付けについては、「Azure Search インデクサーのフィールド マッピング」を参照してください。For help with field associations, see Field mappings in Azure Search indexers.

ヒント

インデクサーで自動的にインデックスを生成することはできませんが、ポータルにあるデータのインポートウィザードを活用することができます。Although indexers cannot generate an index for you, the Import data wizard in the portal can help. ほとんどの場合、ウィザードで、ソース内の既存のメタデータからインデックス スキーマを推測し、仮のインデックス スキーマを得ることができます。ウィザードがアクティブである間は、このスキーマをインライン編集することが可能です。In most cases, the wizard can infer an index schema from existing metadata in the source, presenting a preliminary index schema which you can edit in-line while the wizard is active. サービスのインデックスが作成された後にポータルで行う編集は、主に新しいフィールドの追加に限定されます。Once the index is created on the service, further edits in the portal are mostly limited to adding new fields. ウィザードは、あくまでインデックスの作成にご使用ください。インデックスの修正には適していません。Consider the wizard for creating, but not revising, an index. 実践的なスキルを身に付けるには、ポータルのチュートリアルをご覧ください。For hands-on learning, step through the portal walkthrough.

手順 3:インデクサーを作成してスケジュールを設定するStep 3: Create and schedule the indexer

インデクサー定義は、データの取り込みに関連するすべての要素をまとめたコンストラクトです。The indexer definition is a construct that brings together all of the elements related to data ingestion. 必要な要素には、データ ソースとインデックスが含まれます。Required elements include a data source and index. 省略可能な要素には、スケジュールとフィールド マッピングが含まれます。Optional elements include a schedule and field mappings. フィールド マッピングは、ソース フィールドとインデックス フィールドが明らかに対応している場合にのみ、省略可能となります。Field mapping are only optional if source fields and index fields clearly correspond. インデクサーは、データ ソースが同じサブスクリプションに属していれば、他のサービスのデータ ソースであっても参照できます。An indexer can reference a data source from another service, as long as that data source is from the same subscription. インデクサー構築の詳細については、「 Create Indexer (Azure Search REST API) (インデクサーの作成 (Azure Search REST API))」を参照してください。For more information about structuring an indexer, see Create Indexer (Azure Search REST API).

インデクサーのオンデマンド実行Run indexers on-demand

インデックス作成はスケジュール設定するのが普通ですが、Run コマンドを使用して、インデクサーをオンデマンドで呼び出すことも可能です。While it's common to schedule indexing, an indexer can also be invoked on demand using the Run command:

POST https://[service name].search.windows.net/indexers/[indexer name]/run?api-version=2019-05-06
api-key: [Search service admin key]

注意

API の実行で正しい応答があった場合、インデクサーの呼び出しはスケジュール済みですが、実際の処理は非同期的に実行されます。When Run API returns successfully, the indexer invocation has been scheduled, but the actual processing happens asynchronously.

インデクサーの状態は、ポータルか Get Indexer Status API を使用して監視できます。You can monitor the indexer status in the portal or through Get Indexer Status API.

インデクサーの状態の取得Get indexer status

インデクサーの現在の状態と実行の履歴は、インデクサー状態の取得コマンドを使用して取得できます。You can retrieve the status and execution history of an indexer through the Get Indexer Status command:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2019-05-06
api-key: [Search service admin key]

応答には、全体的なインデクサーの状態、最後の (または実行中の) インデクサー呼び出し、およびインデクサー呼び出しの最近の履歴が含まれています。The response contains overall indexer status, the last (or in-progress) indexer invocation, and the history of recent indexer invocations.

{
    "status":"running",
    "lastResult": {
        "status":"success",
        "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
     },
    "executionHistory":[ {
        "status":"success",
         "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
    }]
}

実行履歴には、最近完了した 50 件の実行内容が含まれ、時系列の逆の順に並べられます (そのため、最近の実行内容が応答の最初に表示されます)。Execution history contains up to the 50 most recent completed executions, which are sorted in reverse chronological order (so the latest execution comes first in the response).

次の手順Next steps

基本的な概念の説明は以上です。次のステップとしてデータ ソースの種類ごとの要件とタスクを確認してください。Now that you have the basic idea, the next step is to review requirements and tasks specific to each data source type.