各ドキュメントには複数のフィールドが含まれており、各フィールドには一連の単語が含まれています。インデックスの目的は、データの取得を高速化することです。インデックスは、マッピングに基づいて次のタイプに分類できます。
転置インデックス: term -> (Doc1,Doc2,...,DocN) の形式で、用語からドキュメント ID へのマッピングを格納します。転置インデックスは、ユーザーが特定の検索キーワードを含むドキュメントを識別するのに役立つ取得に使用されます。
順方向インデックス: ドキュメント ID からフィールドへのマッピングを、ドキュメント ID -> (term1,term2,...termn) の形式で格納します。順方向インデックスは、単一値属性または複数値属性が指定されているかどうかに基づいて、単一値インデックスと複数値インデックスに分けられます。STRING データ型ではない単一値属性は、長さが固定されています。これにより、データクエリが効率化され、単一値属性を更新できます。複数値属性は、不定数のデータ値を含むフィールドです。複数値属性の長さは固定されていません。これはクエリのパフォーマンスに悪影響を与え、複数値属性を更新できなくなります。ドキュメントが取得された後、順方向インデックスを使用して、統計の収集、並べ替え、およびフィルタリングのために、ドキュメント ID に基づいてドキュメントの属性をクエリできます。OpenSearch Retrieval Engine Edition は、順方向インデックスで INT8、UINT16、INT32、INT64、FLOAT、DOUBLE、および STRING のタイプのフィールドをサポートしています。複数値属性は、本質的に一連の単一値属性です。したがって、単一値属性でサポートされているフィールドタイプは、複数値属性でサポートされているフィールドタイプに対応します。たとえば、INT8 は multi_int8 に対応し、STRING は multi_string に対応します。
サマリーインデックス: ドキュメント ID からサマリーへのマッピングを格納します。サマリーインデックスの形式は、順方向インデックスの形式に似ています。ただし、サマリーインデックスでは、ドキュメント ID はフィールドのコレクションにマッピングされます。サマリーインデックスを使用すると、短時間でドキュメント ID に対応するサマリーを識別できます。サマリーインデックスは、表示したいフィールドの値を含む結果を取得するために使用されます。ほとんどの場合、サマリーのサイズは大きくなります。サマリーインデックスは、大量のサマリーコンテンツを取得する必要がある検索には適していません。サマリーコンテンツは、表示したいフィールドの値を含むドキュメントについてのみ取得できます。OpenSearch Retrieval Engine Edition は、サマリーインデックスの圧縮メカニズムを提供します。スキーマでサマリーインデックスの圧縮を有効にすると、OpenSearch Retrieval Engine Edition は zlib を使用してサマリーインデックスを圧縮し、圧縮されたサマリーインデックスを格納します。OpenSearch Retrieval Engine Edition がサマリーインデックスからデータを読み取ると、検索エンジンは圧縮されたサマリーインデックスを解凍し、取得された結果をユーザーに返します。