Azure Searchとは


Azure Searchとは、Microsoftが提供するクラウド型のサービスです。クライアント側でインストール・構築の必要がなく、Azure上でサーバーを構築するだけで該当のサービスを利用できます。Azure Searchによってサーチエンジンを実装することができ、サーチのインデクシング機能でWebサイトを検索するもの、Web APIを活用した結果を返す Azure Cognitive Search などの機能を提供しています。



準備するもの


Azure Searchを利用する際には、最初にAzureアカウントの登録が必要になります。Azure アカウントの登録締め切りまでに、サーチ船のサブスクリプションを有効にして、Azure Searchサービスを構成する必要があります。



開発例


Azure Searchを用いた開発例として、サーチプレーンを使って下記のような、単純な Web アプリケーションを試してみましょう。本コードはASP.NET Core3.1で利用することを前提としています。
using Microsoft.Azure.Search;
using Microsoft.Azure.Search.Models;

namespace SampleSearch
{
class Program
{
static void Main(string[] args)
{
// Azure Searchサービスへのコネクションを構成
string searchServiceName = "XXXXXXXXXXX";
string searchServicekey = "XXXXXXXXXXX";
SearchServiceClient serviceClient =
new SearchServiceClient(
searchServiceName,
new SearchCredentials(searchServicekey));

// 検索インデックスを作成
ISearchIndexClient indexClient =
serviceClient.Indexes.GetClient("hotels");

// 実行する検索クエリを構成
string searchText = "luxury";
SearchParameters sp =
new SearchParameters() { SearchMode = SearchMode.All };
DocumentSearchResult<Hotel> response =
indexClient.Documents.Search<Hotel>(searchText, sp);

// 検索結果を表示
foreach (SearchResult<Hotel> result in response.Results)
{
Console.WriteLine($"Hotel:{result.Document.HotelName}");
}
}
}

public class Hotel
{
  [SimpleField(IsKey = true)]
  public string HotelId { get; set; }
public string HotelName { get; set; }
  public double? BaseRate { get; set; }
public string Description { get; set; }
  public string Category { get; set; }
public string Tags { get; set; }
  public string ParkingIncluded { get; set; }
}


サーチ結果


上記のサンプルコードを実行することで、高級感を持つホテル名が出力されます。このような実装によって、複雑な検索を高速に行うことができるようになるため、Webサービス開発時に大いに役立ちます。

投稿者: systemreach_engineer