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

OpenSearch:インデックス管理

最終更新日:Aug 22, 2026

OpenSearch のインデックス管理では、インデックススキーマが検索とフィルタリング向けにフィールドタイプをどのように定義するか、複合インデックスが複数のフィールドにまたがる仕組み、アナライザーがテキストデータとベクターデータをどのように処理するか、そして属性フィールドが filter、sort、aggregate、distinct 操作をどのようにサポートするかについて説明します。

インデックススキーマ

インデックススキーマは、OpenSearch がデータをどのように保存し、取得するかを定義します。2 種類のフィールドで構成されています:

  • インデックスフィールド — インデックス作成時に分析され、クエリ時に検索されます。全文検索およびキーワード検索に使用します。

  • 属性フィールド — filter、sort、aggregate、distinct の句で使用されます。

フィールドタイプの互換性

どのフィールドタイプがインデックス作成、属性設定、またはその両方をサポートしているかを、次の表に示します。

フィールドタイプ

インデックスフィールド

属性フィールド

主な用途

INT

はい

はい

整数値:範囲検索およびフィルタリング

INT_ARRAY

はい

はい

整数の配列

FLOAT

いいえ

はい

浮動小数点値:ソートと集計のみ

FLOAT_ARRAY

いいえ

はい

float の配列

DOUBLE

いいえ

はい

高精度の小数:ソートと集計のみ

DOUBLE_ARRAY

いいえ

はい

double の配列

TEXT

はい

いいえ

長文テキスト:アナライザーを使用した全文検索

SHORT_TEXT

はい

いいえ

短い文字列:キーワード検索およびあいまい検索

LITERAL

はい

はい

完全一致の文字列:フィルタリングおよび検索

LITERAL_ARRAY

はい

はい

完全一致の文字列の配列

TIMESTAMP

はい

はい

時刻値:範囲検索および時刻ベースのフィルタリング

GEO_POINT

はい

はい

地理座標:位置ベースの検索

複合インデックス

複合インデックスは、複数の TEXT または SHORT_TEXT フィールドにまたがります。OR を使用して複数の単一フィールドインデックスをクエリする場合とは異なり、複合インデックスはすべてのフィールドの結合内容を 1 つの検索可能な単位として扱います。そのため、フィールドをまたぐクエリ用語も一致させることができます。

次のインデックスを持つアプリケーションがあるとします:

  • title_index — title フィールドのインデックス

  • body_index — body フィールドのインデックス

  • union_index — title と body の両方に対する複合インデックス

次のドキュメントがあるとします:

id:123456,title:Open,body:Search
# OR を使用して 2 つの別々のインデックスをクエリしても、ドキュメントは一致しません。
query=title_index:'OpenSearch' OR body_index:'OpenSearch'

# 複合インデックスをクエリすると、ドキュメントが一致します。
query=union_index:'OpenSearch'

OpenSearch という用語は、どちらのフィールド単体にも存在しませんが、複合インデックスは両方のフィールドをまとめて検索することでこの用語を検出します。

説明

複合インデックス内のすべてのフィールドは同じタイプでなければなりません。つまり、すべて TEXT またはすべて SHORT_TEXT のいずれかです。タイプの混在はサポートされません。

アナライザータイプ

テキストアナライザー

テキストアナライザー:テキストアナライザーは、次の領域での検索に向けてテキストを分割します:中国語、英語、一般業界、IT、e コマース、教育。また、次もサポートします:

  • 数値または固定長の値による完全一致検索

  • あいまい検索

  • 位置、時間範囲、または数値範囲による範囲検索

ベクターアナライザー

ベクターアナライザーは、多次元ベクターに基づいてドキュメントを検索します。2つの設定があります:

  • 一般業界:多次元ベクターに基づいてドキュメントを検索します

  • 教育:256 次元ベクターに基づいて一般ドキュメントを検索します

    トークン化なしの完全一致

    フィールドをトークン化せずに完全一致させるには、オフラインでの変更を申請し、フィールドタイプを[LITERAL]に、アナライザーを[キーワードアナライザー]に設定します。キーワードアナライザーを使用すると、フィールド値全体が 1 つのトークンとして扱われるため、そのフィールドに対するクエリでは、トークン化された一致ではなく完全一致が必要になります。

    フィールドタイプの変更はコンソールでは行えないため、この設定を適用するにはオフライン変更プロセスが必要です。保存しても、変更はすぐには反映されません。

    その他の場合にも、トークン化を回避できます:

    • To avoid tokenization for only part of a field's content, use a custom analyzer together with intervention entries and disable secondary tokenization. See Custom analyzers.

    • To avoid tokenization for an entire query term, wrap the term in double quotation marks, for example, query=default:"OpenSearch". See Index recall - query clauses.

    属性フィールド

属性フィールドは次の句をサポートします:

句

目的

filter

フィールド値で結果をフィルタリングします。例:filter=id>100000

aggregate

フィールドに対する統計を計算します

sort

フィールド値で結果をソートします

distinct

フィールドに基づいて結果を重複排除します