すべてのプロダクト
Search
ドキュメントセンター

PolarDB:PolarSearch ユーザーガイド

最終更新日:Nov 09, 2025

PolarSearch は、全文検索とベクトル検索をサポートする PolarDB の分散検索サービスです。OpenSearch 上に構築され、Elasticsearch エコシステムと互換性があり、PolarDB データベースと緊密に統合されています。PolarSearch は、簡単な操作でデータ検索のニーズに対応するワンストップソリューションを提供します。

重要
  • このトピックは、Elasticsearch または OpenSearch に関する知識があることを前提としています。詳細については、「OpenSearch ドキュメント」をご参照ください。

  • この機能は現在ベータ版です。この機能が必要な場合は、チケットを送信してお問い合わせいただくことで、有効にできます。

適用範囲

クラスター構成要件

  • 製品バージョン: Enterprise Edition。

  • データベースエンジン: MySQL 8.0.1、MySQL 8.0.2。

    説明
  • シリーズ: Cluster Edition。

  • PolarSearch はサーバーレスクラスターではサポートされていません。詳細については、「サーバーレス」をご参照ください。

サポートされるリージョンとゾーン

PolarSearch は、次のゾーンでサポートされています:

リージョン

ゾーン

中国 (杭州)

ゾーン K

中国 (上海)

ゾーン E、ゾーン L、ゾーン N

中国 (深圳)

ゾーン C、ゾーン D

中国 (青島)

ゾーン C

中国 (北京)

ゾーン K

中国 (張家口)

ゾーン B

日本 (東京)

ゾーン A、ゾーン C

メキシコ

ゾーン A

課金

PolarSearch は、個別の検索ノードを使用して検索機能を提供します。これらのノードは、通常の計算ノードと同様に課金されます。検索ノード上のインデックスとデータもストレージ領域を消費するため、ストレージ料金が発生します。

PolarSearch 検索ノードの追加

  • 適用範囲の要件を満たす既存のクラスターには、検索ノードを追加できます。

    1. PolarDB コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。クラスターが配置されているリージョンを選択し、クラスターを見つけます。

    2. クラスター ID をクリックして、[基本情報] ページを開きます。

    3. [データベースノード] エリアで、[ノードの追加/削除] をクリックします。

      image

    4. [ノードの追加/削除ウィザード] ダイアログボックスで、検索ノードの追加を選択します。

検索ノードアカウントの作成

管理者アカウントの設定

説明
  • 追加するアカウントは、標準のデータベースアカウントです。

  • この標準アカウントは、PolarSearch 機能の管理者アカウントとして機能します。

  1. PolarDB コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。クラスターが配置されているリージョンを選択し、クラスターを見つけます。

  2. クラスター ID をクリックして、[基本情報] ページを開きます。

  3. [データベースノード] エリアで、[検索ノード] にカーソルを合わせ、[接続データベースアカウントの設定] をクリックします。

    image

  4. ダイアログボックスで、既存の標準データベースアカウントを選択するか、新しいアカウントを作成し、パスワードを入力します。

    image

標準アカウントの設定

標準アカウントの場合、アカウントがアクセスできるインデックスを制御できます。

接続エンドポイントの取得

検索エンドポイント

[データベースノード] エリアで、[検索ノード] にカーソルを合わせます。環境に応じて、プライベートまたはパブリックエンドポイントを取得します。

image

ダッシュボードアドレス

[データベースノード] エリアで、[検索ノード] にカーソルを合わせます。環境に応じて、プライベートまたはパブリックダッシュボードアドレスを取得します。image

PolarSearch へのログイン

検索エンドポイントを使用したアクセス

API を使用してインデックスとデータを管理する場合は、PolarSearch の API を使用してアクセスできます。このセクションでは、ECS インスタンスを例として使用します:

  1. クラスターのホワイトリストを設定する: ECS インスタンスの IP アドレスを PolarDB for MySQL クラスターのホワイトリストに追加します。

    説明
    • ECS インスタンスと PolarDB for MySQL クラスターが同じ VPC にある場合は、ECS インスタンスのプライベート IP アドレスを追加します。

    • ECS インスタンスと PolarDB for MySQL クラスターが同じ VPC にない場合は、ECS インスタンスのパブリック IP アドレスを追加します。

  2. PolarSearch に接続する: 次のコマンドを実行します。コマンドがクラスター情報を返した場合、接続は成功です。<endpoint>:<port> を PolarSearch の検索エンドポイントに置き換えます。<user_name>:<passwd> を PolarSearch の管理者アカウントに置き換えます。

    curl http://<endpoint>:<port>/ -u <user_name>:<passwd>

ダッシュボードを使用したアクセス

グラフィカルユーザーインターフェイス (GUI) を使用して PolarSearch を管理する場合は、ダッシュボード (コンソール) を使用してアクセスできます。このセクションでは、ローカル環境のブラウザを例として使用します:

  1. クラスターのホワイトリストを設定する: ローカル環境の IP アドレスを PolarDB for MySQL クラスターのホワイトリストに追加します。

  2. ブラウザで PolarSearch コンソールにログインします:

    1. ブラウザのアドレスバーに http://<endpoint>:<port> を入力して Enter キーを押します。<endpoint>:<port> を PolarSearch のパブリックダッシュボードアドレスに置き換えます。

    2. コンソールのログインページで、PolarSearch の管理者アカウントを入力して、Kibana 互換の PolarSearch コンソールにログインします。

説明
  • このセクションのすべての例では、ECS インスタンスのコマンドラインを使用します。

  • PolarSearch は、OpenSearch 2.10.0 のソフトウェア開発キット (SDK) および REST API と完全に互換性があります。他のバージョンでは互換性の問題が発生する可能性があります。詳細については、「OpenSearch」をご参照ください。

インデックスの作成

検索ノード上のインデックスは、リレーショナルデータベースのテーブルに似ています。次の例に示すように、Elasticsearch 互換の REST API を使用してインデックスを作成できます:

curl -X PUT "http://<endpoint>:<port>/articles" -H "Content-Type:application/json" -d '
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text"  // 全文検索フィールド (説明コメント。テスト前に削除してください。)
      },
      "content": {
        "type": "text"
      },
      "author": {
        "type": "keyword"  // 完全一致フィールド (説明コメント。テスト前に削除してください。)
      }
    }
  }
}
'

データのインポート

curl -X POST "http://<endpoint>:<port>/articles/_bulk" -H "Content-Type:application/json" -d '
{"index": {}}
{"title": "Introduction to PolarSearch", "content": "PolarSearch is a powerful search engine.", "author": "Allen"}
{"index": {}}
{"title": "Advanced Search Techniques", "content": "Learn how to use full-text search and filters in PolarDB.", "author": "Lang"}
{"index": {}}
{"title": "Elasticsearch vs PolarSearch", "content": "A comparison of Elasticsearch and PolarSearch features.", "author": "Zhao"}
'

検索クエリの実行

データがインポートされた後、次の例に示すように、SDK または REST API を使用して全文検索を実行できます:

curl -X GET "http://<endpoint>:<port>/articles/_search" -H "Content-Type:application/json" -d '
{
  "query": {
    "match": {
      "content": "PolarSearch"
    }
  }
}'
説明

検索クエリの構文の詳細については、「OpenSearch」をご参照ください。

ベクトルインデックスの作成

curl -X PUT "http://<endpoint>:<port>/my-vector-index" -H "Content-Type:application/json" -d '
{
  "settings": {
    "index": {
      "knn": true
    }
  },
  "mappings": {
    "properties": {
      "vector_field": {
        "type": "knn_vector",
        "dimension": 4
      },
      "metadata": {
        "type": "text"
      }
    }
  }
}
'

ベクトルデータの挿入

curl -X POST "http://<endpoint>:<port>/my-vector-index/_bulk" -H "Content-Type:application/json" -d '
{"index": {}}
{"vector_field": [0.1, 0.5, -0.3, 0.8], "metadata": "Document 1"}
{"index": {}}
{"vector_field": [-0.2, 0.7, 0.4, -0.1], "metadata": "Document 2"}
'

ベクトル検索の実行

curl -X GET "http://<endpoint>:<port>/my-vector-index/_search" -H "Content-Type:application/json" -d '
{
  "size": 2,
  "query": {
    "knn": {
      "vector_field": {
        "vector": [0.1, 0.5, -0.3, 0.8],
        "k": 2
      }
    }
  }
}
'