概要
インデックススキーマは、インデックスフィールドと属性フィールドで構成されます。インデックスフィールドは、TEXTタイプのフィールドで分析を実行した後にデータ検索で使用されます。属性フィールドは、データの統計、並べ替え、フィルタリング、および集計で使用されます。
次のタイプのフィールドをインデックスフィールドとして設定できます。
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)である必要があります。異なるタイプのフィールドに複合インデックスを作成することはできません。
システムのデフォルトインデックスが作成されるフィールドは、TEXTタイプである必要があります。
アナライザーの種類
テキストアナライザー:テキストアナライザーを使用して、中国語、英語、一般産業、IT、Eコマース、教育タイプのテキストをセグメント化してドキュメントを取得できます。また、テキストアナライザーを使用して、数値または固定長の値による完全一致検索、あいまい検索、範囲検索を実行することもできます。範囲検索は、場所、時間範囲、または数値範囲で検索できます。
属性フィールド
使用上の注意:属性フィールドは、filter、aggregate、sort、およびdistinct句で使用して、フィルタリング、統計、および並べ替え機能を実装できます。例:"filter=id>100000"。