チュートリアル:クラウド ストレージで非構造化データを検索するTutorial: Search unstructured data in cloud storage

このチュートリアルでは、Azure Blob Storage の格納データを使用し、Azure Search を使用して、非構造化データを検索する方法を説明します。In this tutorial, you learn how to search unstructured data by using Azure Search, using data stored in Azure Blob storage. 非構造化データは、事前に定義された方法で編成されていないか、データ モデルがないデータです。Unstructured data is data that either is not organized in a pre-defined manner or does not have a data model. たとえば、.txt ファイルが挙げられます。An example is a .txt file.

このチュートリアルには、Azure サブスクリプションが必要です。This tutorial requires that you have an Azure subscription. Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

このチュートリアルで学習する内容は次のとおりです。In this tutorial you learn how to:

  • リソース グループの作成Create a resource group
  • ストレージ アカウントの作成Create a storage account
  • コンテナーを作成するCreate a container
  • データをコンテナーにアップロードするUpload data to your container
  • ポータルから検索サービスを作成するCreate a search service through the portal
  • 検索サービスをストレージ アカウントに接続するConnect a search service to a storage account
  • データ ソースを作成するCreate a data source
  • インデックスの構成Configure the index
  • インデクサーの作成Create an indexer
  • 検索サービスを使用してコンテナーを検索するUse the search service to search your container

前提条件Prerequisites

すべてのストレージ アカウントは、Azure リソース グループに属している必要があります。Every storage account must belong to an Azure resource group. リソース グループは、Azure サービスをグループ化するための論理コンテナーです。A resource group is a logical container for grouping your Azure services. ストレージ アカウントを作成するときに、新しいリソース グループを作成するか、既存のリソース グループを使用するかを選択できます。When you create a storage account, you have the option to either create a new resource group or use an existing resource group. このチュートリアルでは、新しいリソース グループを作成します。This tutorial creates a new resource group.

Azure Portal にサインインします。Sign in to the Azure portal.

Azure Portal で汎用 v2 ストレージ アカウントを作成するには、次の手順に従います。To create a general-purpose v2 storage account in the Azure portal, follow these steps:

  1. Azure Portal で [すべてのサービス] を選択します。In the Azure portal, select All services. リソースの一覧で「ストレージ アカウント」と入力します。In the list of resources, type Storage Accounts. 入力を始めると、入力内容に基づいて、一覧がフィルター処理されます。As you begin typing, the list filters based on your input. [ストレージ アカウント] を選択します。Select Storage Accounts.

  2. 表示された [ストレージ アカウント] ウィンドウで [追加] を選択します。On the Storage Accounts window that appears, choose Add.

  3. ストレージ アカウントを作成するサブスクリプションを選択します。Select the subscription in which to create the storage account.

  4. [リソース グループ] フィールドの下の [新規作成] を選択します。Under the Resource group field, select Create new. 次の図のように、新しいリソース グループの名前を入力します。Enter a name for your new resource group, as shown in the following image.

    ポータルでリソース グループを作成する方法を示すスクリーンショット

  5. 次に、ストレージ アカウントの名前を入力します。Next, enter a name for your storage account. 選択する名前は Azure 全体で一意である必要があります。The name you choose must be unique across Azure. また、名前の長さは 3 から 24 文字とし、数字と小文字のみを使用できます。The name also must be between 3 and 24 characters in length, and can include numbers and lowercase letters only.

  6. ストレージ アカウントの場所を選択するか、または既定の場所を使います。Select a location for your storage account, or use the default location.

  7. 以下のフィールドは既定値に設定されたままにします。Leave these fields set to their default values:

    フィールドField Value
    デプロイメント モデルDeployment model リソース マネージャーResource Manager
    パフォーマンスPerformance StandardStandard
    アカウントの種類Account kind StorageV2 (汎用 v2)StorageV2 (general-purpose v2)
    レプリケーションReplication 読み取りアクセス geo 冗長ストレージ (LRS)Read-access geo-redundant storage (LRS)
    アクセス層Access tier ホットHot
  8. [確認および作成] を選択して、ストレージ アカウントの設定を確認し、アカウントを作成します。Select Review + Create to review your storage account settings and create the account.

  9. 作成 を選択します。Select Create.

ストレージ アカウントの種類およびその他のストレージ アカウントの設定について詳しくは、「Azure ストレージ アカウントの概要」をご覧ください。For more information about types of storage accounts and other storage account settings, see Azure storage account overview. リソース グループの詳細については、「Azure Resource Manager の概要」をご覧ください。For more information on resource groups, see Azure Resource Manager overview.

このチュートリアルで利用できるサンプル データ セットが用意されています。A sample data set has been prepared for you so that you can make use of it for this tutorial. clinical-trials.zip をダウンロードし、独自のフォルダーに解凍します。Download clinical-trials.zip and unzip it to its own folder.

サンプルは、clinicaltrials.gov から取得したテキスト ファイルで構成されています。The sample consists of text files obtained from clinicaltrials.gov. このチュートリアルでは、それらのテキスト ファイルを例に、Azure Search サービスを使用して検索します。This tutorial uses them as example text files that are searched using Azure Search services.

コンテナーを作成するCreate a container

コンテナーはフォルダーに似ており、BLOB の格納に使用します。Containers are similar to folders and are used to store blobs.

このチュートリアルでは、1 つのコンテナーを使用して、clinicaltrials.gov から取得したテキスト ファイルを格納します。For this tutorial, you use a single container to store the text files obtained from clinicaltrials.gov.

  1. Azure portal で、ストレージ アカウントに移動します。Go to your storage account in the Azure portal.

  2. [Blob service][BLOB の参照] を選択します。Select Browse blobs under Blob Service.

  3. 新しいコンテナーを追加します。Add a new container.

  4. コンテナーに、data という名前を付けて、パブリック アクセス レベルに [Container](コンテナー) を選択します。Name the container data and select Container for the public access level.

  5. [OK] を選択してコンテナーを作成します。Select OK to create the container.

    非構造化検索

サンプル データのアップロードUpload the example data

サンプル データをアップロードできるコンテナーが用意されました。Now that you have a container, you can upload your example data to it.

  1. コンテナーを選択し、[Upload] (アップロード) を選択します。Select your container and select Upload.

  2. [Files](ファイル) フィールドの横にある青いフォルダー アイコンを選択し、サンプル データを抽出したローカル フォルダーを参照します。Select the blue folder icon next to the Files field and browse to the local folder where you extracted the sample data.

  3. 抽出したすべてのファイルを選択し、[Open](開く) を選択します。Select all of the extracted files and select Open.

  4. [Upload] (アップロード) を選択し、アップロード プロセスを開始します。Select Upload to begin the upload process.

    非構造化検索

アップロード プロセスには、しばらく時間がかかることがあります。The upload process might take a moment.

それが完了したら、データ コンテナーに戻り、テキスト ファイルがアップロードされたことを確認します。After it finishes, go back into your data container to confirm the text files were uploaded.

非構造化検索

Search Service の作成Create a search service

Azure Search は、データ検索機能を追加するための API とツールを開発者に提供する "サービスとしての検索クラウド" ソリューションです。Azure Search is a search-as-a-service cloud solution that gives developers APIs and tools for adding a search experience over your data.

このチュートリアルでは、検索サービスを使用して、clinicaltrials.gov から取得したテキスト ファイルを検索します。For this tutorial, you use a search service to search the text files obtained from clinicaltrials.gov.

  1. Azure portal で、ストレージ アカウントに移動します。Go to your storage account in the Azure portal.

  2. 下へスクロールし、[Blob service] で、[Azure Search の追加] を選択します。Scroll down and select Add Azure Search under BLOB SERVICE.

  3. [Import Data] (データのインポート) で、[Pick your service] (サービスの選択) を選択します。Under Import Data, select Pick your service.

  4. [Click here to create a new search service] (ここをクリックして新しい検索サービスを作成) を選択します。Select Click here to create a new search service.

  5. [New Search Service] (新しい検索サービス) 内で、[URL] フィールドに検索サービスの一意の名前を入力します。Inside New Search Service enter a unique name for your search service in the URL field.

  6. [Resource group](リソース グループ) で、[Use existing](既存を使用) を選択し、先に作成したリソース グループを選択します。Under Resource group, select Use existing and choose the resource group that you created earlier.

  7. [Pricing tier](価格レベル) で、[Free](無料) レベルを選択し、[Select](選択) をクリックします。For Pricing tier, select the Free tier and click Select.

  8. [Create] (作成) を選択して、検索サービスを作成します。Select Create to create the search service.

    非構造化検索

検索サービスをコンテナーに接続するConnect your search service to your container

Blob Storage に接続できる検索サービスが用意されました。Now that you have a search service, you can attach it to your blob storage. このセクションでは、データ ソースの選択、インデックスの作成、インデクサーの作成のプロセスについて説明します。This section walks you through the process of choosing a data source, creating an index, and creating an indexer.

  1. ストレージ アカウントに移動します。Go to your storage account.

  2. [Blob service] で、[Azure Search の追加] を選択します。Select Add Azure Search under BLOB SERVICE.

  3. [Import Data](データのインポート) 内で [Search Service](検索サービス) を選択し、前のセクションで作成した検索サービスをクリックします。Select Search Service inside Import Data, and then click the search service that you created in the preceding section. これにより、[New data source](新しいデータ ソース) が開きます。This opens New data source.

データ ソースを作成するCreate a data source

データ ソースは、インデックスを作成するデータとデータにアクセスする方法を指定します。A data source specifies which data to index and how to access the data. データ ソースは、同じ検索サービスで、何回も使用できます。A data source can be used multiple times by the same search service.

  1. データ ソースの名前を入力します。Enter a name for the data source. [Data to extract] (抽出されるデータ) で、[Content and Metadata] (コンテンツとメタデータ) を選択します。Under Data to extract, select Content and Metadata. データ ソースは、インデックスを作成する BLOB の部分を指定します。The data source specifies which parts of the blob are indexed.

  2. 使用している BLOB はテキスト ファイルであるため、[解析モード][テキスト] に設定します。Because the blobs you're using are text files, set Parsing Mode to Text.

    非構造化検索

  3. [Storage Container] (ストレージ コンテナー) を選択し、使用可能なストレージ アカウントを一覧表示します。Select Storage Container to list the available storage accounts.

  4. ストレージ アカウントを選択し、以前に作成したコンテナーを選択します。Select your storage account, and then select the container that you created previously.

    非構造化検索

  5. [Select](選択) をクリックして、[New data source](新しいデータ ソース) に戻り、[OK] を選択して続行します。Click Select to return to New data source, and select OK to continue.

インデックスの構成Configure the index

インデックスは、検索可能なデータ ソースからのフィールドのコレクションです。An index is a collection of fields from your data source that can be searched. 検索サービスが目的のデータをどのように検索すればよいかがわかるよう、それらのフィールドに対してパラメーターを設定して構成することになります。You set and configure parameters on these fields so that your search service knows what ways your data should be searched.

  1. [Import data](データのインポート) で、[対象インデックスをカスタマイズします] を選択します。In Import data, select Customize target index.

  2. [Index name] (インデックス名) フィールドに、インデックスの名前を入力します。Enter a name for your index in the Index name field.

  3. [metadata_storage_name][Retrievable] 属性のチェックボックスをオンにします。Select the Retrievable attribute's check box under metadata_storage_name.

    非構造化検索

  4. [OK] を選択すると、[インデクサーの作成] が表示されます。Select OK, which brings up Create an Indexer.

インデックスのパラメーターとそれらのパラメーターを指定する属性は重要です。The parameters of your index and the attributes you give those parameters are important. パラメーターは "どの" データを格納するか、属性は "どのように" そのデータを格納するかを指定します。The parameters specify what data to store, and the attributes specify how to store that data.

[FIELD NAME] (フィールド名) 列に、パラメーターが含まれます。The FIELD NAME column contains the parameters. 次の表に、使用可能な属性とその説明の一覧を提供します。The following table provides a listing of the available attributes and their descriptions.

フィールド属性Field attributes

属性Attribute 説明Description
キーKey ドキュメント検索に使用される各ドキュメントの一意の ID を提供する文字列です。A string that provides the unique ID of each document, used for document lookup. 各インデックスに、1 つのキーが必要です。Every index must have one key. 1 つのフィールドだけをキーにすることができ、その型を Edm.String に設定する必要があります。Only one field can be the key, and its type must be set to Edm.String.
RetrievableRetrievable 検索結果でフィールドを返すことができるかどうかを設定します。Specifies whether a field can be returned in a search result.
FilterableFilterable フィルター クエリでフィールドを使用できるようにします。Allows the field to be used in filter queries.
SortableSortable このフィールドを使ってクエリで検索結果を並べ替えられるようにします。Allows a query to sort search results using this field.
FacetableFacetable ユーザー自律フィルター処理のファセット ナビゲーション構造でフィールドを使用できるようにします。Allows a field to be used in a faceted navigation structure for user self-directed filtering. 通常は、ドキュメント (たとえば、1 つのブランドやサービス カテゴリに属する複数のドキュメント) をまとめてグループ化するために使用できる、反復する値があるフィールドが、ファセットとして最適です。Typically, fields containing repetitive values that you can use to group documents together (for example, multiple documents that fall under a single brand or service category) work best as facets.
SearchableSearchable フィールドをフルテキスト検索可能としてマークします。Marks the field as full-text searchable.

インデクサーの作成Create an indexer

インデクサーはデータ ソースを検索インデックスに接続し、データのインデックスの再作成のスケジュールを提供します。An indexer connects a data source with a search index, and provides a schedule to reindex your data.

  1. [Name] (名前) フィールドに名前を入力し、[OK] を選択します。Enter a name in the Name field and select OK.

    非構造化検索

  2. [Import Data](データのインポート) に戻ります。You are brought back to Import Data. [OK] を選択して、接続プロセスを完了します。Select OK to complete the connection process.

BLOB を検索サービスに正常に接続しました。You've now successfully connected your blob to your search service. ポータルで、インデックスに入力されたことが表示されるまで数分かかります。It takes a few minutes for the portal to show that the index is populated. ただし、検索サービスは、すぐにインデックス作成を開始するため、ただちに検索を開始できます。However, the search service begins indexing immediately so you can begin searching right away.

テキスト ファイルの検索Search your text files

ファイルを検索するには、新しく作成した検索サービスのインデックス内で Search エクスプローラーを開きます。To search your files, open the search explorer inside the index of your newly created search service.

次の手順で、Search エクスプローラーがある場所を示し、いくつかのクエリ例を提供します。The following steps show you where to find the search explorer and provides you some example queries:

  1. すべてのリソースに移動し、新しく作成した検索サービスを見つけます。Go to all resources and find your newly created search service.

    非構造化検索

  2. インデックスを選択して、それを開きます。Select your index to open it.

    非構造化検索

  3. [Search エクスプローラー] を選択して、Search エクスプローラーを開き、データへのライブ クエリを行うことができます。Select Search Explorer to open the search explorer, where you can make live queries on your data.

    非構造化検索

  4. クエリ文字列フィールドが空の状態で、[Search] (検索) を選択します。Select Search while the query string field is empty. 空のクエリは、BLOB からすべてのデータを返します。An empty query returns all the data from your blobs.

    非構造化検索

[Query string](クエリ文字列) フィールドに、「Myopia」と入力し、[Search](検索) を選択します。Enter Myopia in the Query string field, and select Search. この手順でファイルの内容の検索を開始すると、"Myopia" という単語を含むそれらのサブセットが返されます。This step starts a search of the files' contents and returns a subset of them, which contains the word "Myopia."

非構造化検索

フルテキスト検索のほかにも、$select パラメーターを使用することで、システム プロパティを検索条件とするクエリを作成できます。In addition to a full-text search, you can create queries that search by system properties using the $select parameter.

クエリ文字列に「$select=metadata_storage_name」と入力して Enter キーを押します。Enter $select=metadata_storage_name into the query string and press Enter. すると、その特定のフィールドのみが返されます。This causes only that particular field to return.

クエリ文字列は、URL を直接に変更するため、スペースは使用できません。The query string is directly modifying the URL, so spaces are not permitted. 複数のフィールドを検索するには、$select=metadata_storage_name,metadata_storage_path のように、コンマを使用します。To search multiple fields, use a comma, such as: $select=metadata_storage_name,metadata_storage_path

$select パラメーターは、インデックスを定義するときに取得可能とマークされたフィールドでのみ使用できます。The $select parameter can only be used with fields that are marked retrievable when defining your index.

非構造化検索

このチュートリアルが完了し、非構造化データの検索可能なセットが用意されました。You have now completed this tutorial and have a searchable set of unstructured data.

リソースのクリーンアップClean up resources

作成したリソースを削除するには、リソース グループを削除するのが最も簡単です。The easiest way to remove the resources you've created is to delete the resource group. リソース グループを削除すると、そのグループに含まれるすべてのリソースも削除されます。Removing the resource group also deletes all resources included within the group. 次の例では、リソース グループを削除して、ストレージ アカウントとリソース グループ自体を削除しています。In the following example, removing the resource group removes the storage account and the resource group itself.

  1. Azure portal で、ご利用のサブスクリプションのリソース グループ一覧に移動します。In the Azure portal, go to the list of resource groups in your subscription.
  2. 削除するリソース グループを選択します。Select the resource group that you want to delete.
  3. [リソース グループの削除] ボタンを選択し、目的のリソース グループの名前を削除フィールドに入力します。Select the Delete resource group button and enter the name of the resource group in the deletion field.
  4. [削除] を選択します。Select Delete.

次の手順Next steps

Azure Search によるドキュメントのインデックス作成の詳細については、次のリンクをクリックしてください。Follow this link to learn more about indexing documents with Azure Search: