インデックススキーマ
インデックススキーマは、インデックスフィールドと属性フィールドで構成されます。 インデックスフィールドは、テキストタイプのフィールドで分析が実行された後、データ検索で使用されます。 属性フィールドは、データの統計、ソート、フィルタリング、および集約で使用されます。
次のタイプのフィールドをインデックスフィールドとして設定できます。
INT、INT_ARRAY、TEXT、SHORT_TEXT、LITERAL、LITERAL_ARRAY、TIMESTAMP、および GEO_POINT
次のタイプのフィールドは、インデックスフィールドとして設定できません。
FLOAT、FLOAT_ARRAY、DOUBLE、および DOUBLE_ARRAY
次のタイプのフィールドを属性フィールドとして設定できます。
INT、INT_ARRAY、LITERAL、LITERAL_ARRAY、FLOAT、FLOAT_ARRAY、DOUBLE、DOUBLE_ARRAY、TIMESTAMP、および GEO_POINT
次のタイプのフィールドは、属性フィールドとして設定できません。
TEXT および SHORT_TEXT
複合インデックス
複合インデックスは、TEXT タイプまたは SHORT_TEXT タイプの複数のフィールドに作成されるインデックスです。 複合インデックスを使用して実行される検索は、複数のインデックスと OR 論理演算子を使用して実行される検索とは少し異なります。
次の例では、アプリケーション用に 2 つの標準インデックスと 1 つの複合インデックスが作成されています。
title_index: title フィールドのインデックス。body_index: body フィールドのインデックス。union_index: title フィールドと body フィールドの複合インデックス。
アプリケーション内のドキュメントのコンテンツ:
id:123456,title:Open,body:Search次のコードは、2 つの検索例を示しています。
# 2 つの標準インデックスと OR 論理演算子を使用した場合、ドキュメントを取得できません。
query=title_index:'OpenSearch' OR body_index:'OpenSearch'
# 複合インデックスを使用した場合、ドキュメントを取得できます。
query=union_index:'OpenSearch'注: 複合インデックスが作成されるフィールドは、同じタイプ(TEXT または SHORT_TEXT)である必要があります。 異なるタイプのフィールドに複合インデックスを作成することはできません。
アナライザタイプ
テキストアナライザ: テキストアナライザを使用すると、中国語、英語、一般産業、IT、E コマース、教育タイプのテキストをセグメント化してドキュメントを取得できます。 また、テキストアナライザを使用して、数値または固定長の値による完全一致検索、あいまい検索、および範囲検索を実行することもできます。 範囲検索では、場所、時間範囲、または数値範囲で検索できます。
ベクトルアナライザ: ベクトルアナライザを使用すると、一般産業の多次元ベクトルに基づいてドキュメントを取得したり、教育産業の 256 次元ベクトルに基づいて一般的なドキュメントを取得したりできます。
属性フィールド
使用上の注意: 属性フィールドは、filter、aggregate、sort、および distinct 句で使用して、フィルタリング、統計、およびソート機能を実装できます。 例: "filter=id>100000"。