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

OpenSearch:よくある質問

最終更新日:Mar 19, 2026

このトピックでは、OpenSearch の使用に関するよくある質問をまとめています。

システム

Q: OpenSearch とは何ですか?

OpenSearch は、構造化データ向けに最適化されたクラウド検索サービスです。基盤となる技術的詳細の管理を必要とせず、高品質・スケーラブル・カスタマイズ可能な検索サービスを簡単に構築できます。設定の構成とデータのアップロードのみで利用可能であり、検索結果は API を使用して取得します。また、主要なプログラミング言語向けにソフトウェア開発キット(SDK)も提供しています。対応言語の詳細については、管理インターフェイス上の「ダウンロードハブ」をご参照ください。

Q: OpenSearch のメリットは何ですか?

OpenSearch は、データ量の増加に応じてハードウェアリソースを自動的に拡張する、高度にスケーラブルなクラウドベースの検索サービスです。これにより、ハードウェアへの初期投資なしで検索サービスを構築できます。また、検索機能は既存のサーバーに負荷をかけません。高速かつ高品質な検索結果は、ユーザーの情報ニーズにより適切に応えることができ、ユーザーのエンゲージメント向上、および製品のトラフィックや人気スコアの増加につながります。最終的には、顕著な経済的価値を創出します。

Q: 検索リクエストの送信回数に制限はありますか?

制限はありません。必要に応じて、コンソールから手動で設定を構成できます。ただし、秒間クエリ数(QPS)が非常に高いリクエストについては、手動レビューが必要です。該当する場合は、できるだけ早期に申請してください。QPS が過度に高い場合、システムは内部で自動調整を行います。この処理には数日かかることがあります。

Q: 検索リクエストのレイテンシはどの程度ですか?

実際のアクセスレイテンシは、クエリの複雑さおよび一致するドキュメント数に大きく影響されます。ご使用のユースケースにおける具体的なレイテンシは、実際のデータを用いたテストによって確認してください。

Q: OpenSearch の課金方法を教えてください。

詳細については、「標準版 OpenSearch インスタンスの課金概要」をご参照ください。課金モデルの更新後、以下の 2 種類の課金方法が利用可能です:従来型(ストレージおよび QPS をベースとする課金方法)と、新規型(LCU をベースとする課金方法)。注意:従来型課金方法をご利用の場合、モニタリング画面に表示される LCU 消費量は課金とは無関係であり、検索パフォーマンスの参考指標としてのみご利用いただけます。

フロー

Q: アプリケーションとは何か、および作成方法を教えてください。

アプリケーションとは、同一のアプリケーションスキーマを共有する検索可能なドキュメントの集合です。アプリケーション内では、データテーブル、フィールドタイプ、検索プロパティを定義できます。また、データのアップロードおよび検索結果の取得も可能です。アプリケーションは、コンソールまたは Web API を使用して作成・管理・削除できます。

Q: アプリケーションスキーマ定義時の「index to」の目的は何ですか?

`query` 句を用いてキーワードを検索する場合、検索対象のインデックスを明示的に指定する必要があります。これは、アプリケーションスキーマの「index to」プロパティで定義したフィールドです。インデックスフィールドには、1 つ以上のソースフィールドが含まれます。インデックスフィールドを定義すると、DPI エンジンが検索クエリとドキュメントをマッピングする転置インデックスを構築します。これにより、検索クエリに基づいてドキュメントを迅速に特定でき、クエリパフォーマンスが大幅に向上します。

たとえば、掲示板には以下の 2 つの検索要件があります:1. タイトル・本文・著者を統合して検索する、2. タイトルのみを検索する。ソースフィールドは `title`、`body`、`author` です。これらを `default` フィールドにインデックス化し、さらに `title` を `title_search` フィールドにインデックス化できます。このように設定することで、`query=default:'keyword'` で要件 1 を満たし、`query=title_search:'keyword'` で要件 2 を満たすことができます。

Q: テンプレートとは何ですか?

テンプレートは、典型的なインターネットデータ向けに事前に構成されたアプリケーションコンテナであり、ワークロードの軽減を目的としています。アプリケーションスキーマ、ソート方法、その他の構成が含まれます。アプリケーション作成時に利用可能なテンプレートの詳細を確認できます。今後、追加のテンプレートも順次提供される予定です。

Q: テンプレートを選択後にアプリケーションスキーマを変更できますか?

はい、変更可能です。アプリケーション管理 > 詳細 > オフライン変更へ進んでください。具体的な手順については、「オフライン変更」をご参照ください。

Q: アプリケーションへのデータのアップロード方法を教えてください。

RDS、MaxCompute(旧 ODPS)、PolarDB をご利用の場合、コンソール上でインスタンス情報を入力することで、自動同期を設定できます。その他のユーザーは、データアップロード API または管理インターフェイスのアップロード機能を使用してデータをアップロードできます。

Q: アプリケーションにアップロードできるドキュメント数に上限はありますか?

アプリケーションへのドキュメントアップロード数には上限がありません。ただし、コンソールでドキュメント容量のクォータを構成できます。詳細については、「アプリケーション管理」内の「クォータと課金」セクションをご参照ください。ピーク QPS と同様に、大規模な容量を要求する場合は手動レビューが必要です。このクォータは課金に影響するため、必要に応じて適切に構成してください。

Q: アプリケーションを削除する方法を教えてください。

アプリケーションを削除するには、管理ツールでインデックス名をクリックします。インデックス詳細ページで **[アプリケーションの削除]** をクリックし、表示されるプロンプトで操作を確認します。

Q: アプリケーションからドキュメントを削除する方法を教えてください。

特定のドキュメントを削除するには、SDK を使用してアップロードするデータの操作を `delete` に設定します。また、コンソールの「検索テスト」ページでも、特定のドキュメントを削除する機能が提供されています。

Q: アプリケーションをクリアする方法を教えてください。

アプリケーション名を維持したい場合は、アプリケーション内のドキュメントを個別に削除してインデックスをクリアします。アプリケーション名を維持する必要がない場合は、新しいアプリケーションを作成し、構成をコピーしてください。今後、専用のデータクリア機能が提供される予定です。現在、Premium Edition では、7 日~180 日間のドキュメント保持期間を指定できるスケジュール済みのクリーンアップタスクがサポートされています。

データインポート

Q: OpenSearch は RDS などの Alibaba Cloud データベースサービスと連携できますか?

はい、連携可能です。アプリケーションのデータソース設定で RDS インスタンス情報を構成することで、RDS の操作を OpenSearch システムへ自動同期できます。構成後は、データのインポートおよびインデックスの再構築を行い、現在の全データをシステムへインポートする必要があります。

Q: OpenSearch が直接連携する Alibaba Cloud 製品を教えてください。

現在、OpenSearch は RDS、MaxCompute(旧 ODPS)、PolarDB をサポートしています。今後、さらに多くの製品との連携が予定されています。

Q: API や SDK を使用したアップロード時のドキュメント形式は何ですか?

OpenSearch は現在 JSON 形式をサポートしています。詳細については、テンプレートページのサンプルファイル、または API ドキュメントの「データ処理」セクションをご参照ください。

Q: 「add」と「update」コマンドの違いは何ですか?

ドキュメントを `add` または `update` コマンドでアップロードする場合、一部のフィールドに値を指定しなかった場合の動作が異なります。`add` コマンドでは、未指定のフィールドがデフォルト値で上書きされますが、`update` コマンドではそれらのフィールドは処理されません。

検索

Q: OpenSearch が提供する検索機能を教えてください。

OpenSearch は、テキストや数値などの基本データ型に対する検索を提供します。また、クエリ、フィルタリング、ソート、統計、集約などの機能も備えています。その他の機能には、典型的なデータテンプレート、カスタムインデックススキーマ、カスタム検索結果ソート、カスタムクエリ分析(同義語や誤字訂正など)、検索候補などが含まれます。

Q: 全ドキュメントを取得する方法を教えてください。

この機能はサポートされていません。検索エンジンは、可能な限り短時間で最適な結果を返すことを目的として設計されているため、すべてのドキュメントを表示する機能は提供されていません。OpenSearch には、返却可能な最大結果数に制限があります(「使用制限」を参照)。また、ページネーションも、この総結果数の範囲内で制限されます。

Q: 検索結果で配列型が文字列ではなく配列として返却されないのはなぜですか?

検索結果における配列型の各要素は、タブ文字(\t)で区切られます。

Q: OpenSearch で独自のトークン化方式および辞書を指定できますか?

トークン化は、インデックス構築時およびクエリ実行時の 2 つの場面で使用されます。現在の辞書は、システム全体に対してグローバルに構成されています。ユーザー定義の辞書はサポートされていません。ただし、OpenSearch は複数のトークン化方式(カスタムトークン化を含む)をサポートしています。詳細については、ユーザーガイドの「フィールドタイプおよびアナライザータイプ」をご参照ください。

Q: ドキュメントに「run fast」とありますが、「run fast now」を検索しても結果が返ってきません。なぜですか?

これは、OpenSearch がトークン化されたクエリのすべての語句がドキュメントに存在することを必須としているためです。クエリ `query=default:'run fast now'` は、`query=default:'run' AND default:'fast' AND default:'now'` と等価です。ドキュメントに語句「now」が含まれていないため、該当ドキュメントは取得されません。

このような場合、クエリ分析で「語句の重み付け」機能を構成することで、重要度の低い語句に RANK 操作を適用できます。これにより、ロングテールクエリの取得問題を解決できます。たとえば、「Have you eaten?」というクエリは、自動的に `query=default:'eaten' RANK default:'Have' RANK default:'you'` と書き換えられます。これにより、完全なクエリに一致するドキュメントが、主語「eaten」のみに一致するドキュメントよりも優先的に取得・ランク付けされます。

Q: 「mx」と「player」を検索しましたが、「mxplayer」を含むドキュメントが取得されませんでした。なぜですか?

英語の場合、トークン化の最小粒度は単語レベルです。「mxplayer」という語句は、ドキュメント内で単一の単語として扱われます。そのため、「mx」や「player」、あるいは「mx player」といった検索では、「mxplayer」を含むドキュメントは取得できません。

Q: OpenSearch は、それほど一般的でない言語での検索をサポートしていますか?

現在、意味解析を伴うトークン化は中国語および英語のみに対応しています。ポルトガル語やロシア語など、空白をデリミタとする他の言語については、基本的な単語マッチングは可能ですが、フレーズ一致などの意味解析はサポートされていません。日本語や韓国語など、空白をデリミタとしない言語はサポートされていません。タイ語およびベトナム語向けのアナライザーはすでに利用可能です。詳細については、「テキストアナライザー」をご参照ください。

Q: 検索結果において、各メンバーから最も関連性の高い商品を 1 つだけ表示し、さらに合計数を表示するにはどうすればよいですか?

`Aggregate` 句と `Distinct` 句を組み合わせて使用します。`Distinct` 句は、同一カテゴリからの結果を多様化するために使用できます。`Aggregate` 句は、同一カテゴリからの結果を集計するために使用できます。

Q: 検索にはキャッシュ機構がありますか?

同一クエリの結果は 5 分間キャッシュされます。キャッシュはデフォルトで有効化されており、変更または無効化することはできません。

API および SDK

Q: SDK を使用したデータプッシュのエンドポイントアドレスは何ですか?

OpenSearch は複数のリージョンに展開されており、各リージョンには固有の API エンドポイントがあります。エンドポイントは、アプリケーション詳細ページで確認できます。

Q: SDK でデータをアップロードしたところ「ok」と返却されましたが、ページ上にエラーが表示されています。エラーメッセージを確認するにはどうすればよいですか?

SDK が「OK」というステータスを返却した場合、これは単にシステムがデータを受信したことを意味するだけであり、その後のデータ処理中に発生したエラーは反映されません。これらのエラーは、コンソール上のアプリケーションのエラーログに表示されます。データのアップロードは成功しているものの検索できない場合は、まずエラーログの内容を確認してください。その後、データを修正して再インポートしてください。エラーログ情報を取得するための API は、現時点では提供されていません。

問題が継続する場合は、チケットを送信してください。