PACK インデックス
PACK インデックスの概要
PACK インデックスは、TEXT タイプのフィールドに作成される複数フィールドインデックスです。TEXT インデックスと比較して、PACK インデックスは TEXT タイプの複数のフィールドをマージして検索するために作成されます。PACK インデックスはセクション情報を保存することもできるため、各検索語があるセクションと関連情報を照会できます。検索パフォーマンスを向上させるために、切り捨て、高頻度単語ビットマップ、および tfbitmap を使用できます。
項目 | df | ttf | tf | fieldmap | セクション情報 | 位置 | positionpayload | docpayload | termpayload |
サポートの有無 | サポート | オプション | オプション | 非サポート | オプション | オプション | オプション | オプション | オプション |
PACK インデックスを設定するためのサンプルコード
{
"index_name": "pack_index", // 転置インデックスの名前
"index_type" : "PACK", // インデックスタイプ
"term_payload_flag" : 1, // term_payload 情報 (各用語のペイロード) を保存するかどうかを指定します。値 1 は term_payload が保存されることを指定します。値 0 は term_payload が保存されないことを指定します。以下のパラメータの値 1 と 0 は同じ意味を持ちます。デフォルトでは、term_payload は保存されません。
"doc_payload_flag" : 1, // doc_payload 情報 (各ドキュメントの各用語のペイロード) を保存するかどうかを指定します。デフォルトでは、doc_payload は保存されます。
"position_list_flag" : 1, // 位置情報を保存するかどうかを指定します。デフォルトでは、位置情報は保存されます。 position_payload_flag パラメータの設定は、term_frequency_flag パラメータの設定によって異なります。 position_list_flag パラメータを 1 に設定できるのは、term_frequency_flag パラメータが 1 に設定されている場合のみです。
"position_payload_flag" : 1, // position_payload 情報 (各ドキュメントの各位置にある用語のペイロード) を保存するかどうかを指定します。デフォルトでは、position_payload は保存されません。 position_payload_flag パラメータの設定は、position_list_flag パラメータの設定によって異なります。 position_payload_flag パラメータを 1 に設定できるのは、position_list_flag パラメータが 1 に設定されている場合のみです。
"term_frequency_flag" : 1, // 用語頻度を保存するかどうかを指定します。デフォルトでは、用語頻度は保存されます。
"term_frequency_bitmap" : 1, // 用語頻度をビットマップとして保存するかどうかを指定します。デフォルト値は 0 です。 term_frequency_bitmap パラメータの設定は、term_frequency_flag パラメータの設定によって異なります。 term_frequency_bitmap パラメータを 1 に設定できるのは、term_frequency_flag パラメータが 1 に設定されている場合のみです。
"has_section_attribute" : false, // section_attribute 情報を保存するかどうかを指定します。デフォルト値は true です。テキストの相関関係は、has_section_attribute パラメータを指定した後にのみ計算できます。
"section_attribute_config": // section_attribute に関するインデックス設定。この設定は、has_section_attribute パラメータが true に設定されている場合に有効になります。 has_field_id パラメータは、field_id 情報を保存するかどうかを指定します。 has_field_id パラメータのデフォルト値は true です。 field_id 情報が保存されていない場合、クエリプロセスはすべてのセクションがインデックスフィールドの最初のフィールドに属していると見なします。 has_section_weight パラメータは、重み情報を保存するかどうかを指定します。 has_section_weight パラメータのデフォルト値は true です。 compress_type パラメータは、section_attribute の圧縮設定方法を指定します。デフォルトでは、圧縮は無効になっています。設定方法は、複数値属性の compress_type パラメータの設定方法と同じです。 section_attribute_config が表示されない場合、デフォルトではすべてのパラメータにデフォルト設定が使用されます。
{
"has_section_weight":true,
"has_field_id":true,
"compress_type":"uniq|equal"
},
"high_frequency_dictionary" : "bitmap1", // ビットマップインデックスを作成するときに使用される語彙。ビットマップインデックスを作成するには、このパラメータを指定します。ビットマップインデックスを作成する必要がない場合は、このパラメータを空のままにします。
"high_frequency_adaptive_dictionary" : "df", // 適応ビットマップインデックスを作成するために使用されるルールの名前。適応ビットマップインデックスを作成するには、このパラメータを指定します。適応ビットマップインデックスを作成する必要がない場合は、このパラメータを空のままにします。
"high_frequency_term_posting_type" : "both", // ビットマップインデックスタイプ。ビットマップインデックスまたは適応ビットマップインデックスを作成するためのパラメータを指定する場合、このパラメータを both または bitmap に設定して、ビットマップインデックスタイプを設定できます。このパラメータを both に設定すると、ビットマップインデックスと転置インデックスが作成されます。このパラメータを bitmap に設定すると、ビットマップインデックスのみが作成されます。デフォルト値は bitmap です。
"index_fields": // インデックスを作成するフィールド。これらのフィールドは TEXT タイプで、同じアナライザを使用する必要があります。
[
{"field_name":"subject", "boost":200000}, // インデックス内のフィールドの重み。インデックスを作成するフィールドの名前とブースト値を指定できます。
{"field_name":"company_name", "boost":600000},
{"field_name":"feature_value", "boost":600000},
{"field_name":"summary", "boost":600000}
],
"index_analyzer" : "taobao_analyzer", // クエリ中に使用されるアナライザ。アナライザを指定すると、クエリ中にテキストが用語に変換されます。この場合、アナライザはフィールドで使用されるアナライザと一致しない場合があります。このパラメータを指定しない場合は、フィールドで使用されるアナライザが使用されます。この場合、フィールドで使用されるアナライザは一致する必要があります。アナライザは、フィールドタイプが TEXT のインデックスにのみ追加できます。
"file_compress":"simple_compress1", // ファイル圧縮方法。OpenSearch Retrieval Engine Edition V3.9.1 以降では、ファイル圧縮方法を設定できます。転置インデックスのファイル圧縮を有効にするには、file_compress パラメータを圧縮方法のエイリアスに設定します。このパラメータを指定しない場合、ファイルは圧縮されません。
"format_version_id":1 // 転置インデックスのバージョン ID。デフォルト値は 0 で、IndexLib がベンチマークバージョンの AIOS に移行されたときに使用される転置インデックスの形式を指定します。OpenSearch Retrieval Engine Edition V3.9.1 以降では、このパラメータを 1 に設定できます。OpenSearch Retrieval Engine Edition V3.9.1 以降では、可変バイト圧縮、最適化された PForDelta アルゴリズム (NewPForDelta)、連続ドキュメント ID の dictInline ストレージなど、転置インデックスのストレージ形式を最適化する一連の手法がサポートされています。
},- index_name: 転置インデックスの名前。クエリステートメントでインデックスベースのクエリを指定する必要があります。 index_name パラメータを summary に設定することはできません。index_type: インデックスタイプ。値を PACK に設定します。term_payload_flag: term_payload 情報(各用語のペイロード)を保存するかどうかを指定します。値 1 は、term_payload が保存されることを指定します。値 0 は、term_payload が保存されないことを指定します。以下のパラメータの値 1 と 0 は同じ意味です。デフォルトでは、term_payload は保存されません。doc_payload_flag: doc_payload 情報(各ドキュメントの各用語のペイロード)を保存するかどうかを指定します。デフォルトでは、doc_payload は保存されます。position_list_flag: 位置情報を保存するかどうかを指定します。デフォルトでは、位置情報は保存されます。 position_payload_flag パラメータの構成は、term_frequency_flag パラメータの構成によって異なります。 position_list_flag パラメータを 1 に設定できるのは、term_frequency_flag パラメータが 1 に設定されている場合のみです。position_payload_flag: position_payload 情報(各ドキュメントの各位置にある用語のペイロード)を保存するかどうかを指定します。デフォルトでは、position_payload は保存されません。 position_payload_flag パラメータの構成は、position_list_flag パラメータの構成によって異なります。 position_payload_flag パラメータを 1 に設定できるのは、position_list_flag パラメータが 1 に設定されている場合のみです。term_frequency_flag: 用語頻度を保存するかどうかを指定します。デフォルトでは、用語頻度は保存されます。
term_frequency_bitmap: 用語頻度をビットマップとして保存するかどうかを指定します。デフォルト値は 0 です。 term_frequency_bitmap パラメータの構成は、term_frequency_flag パラメータの構成によって異なります。 term_frequency_bitmap パラメータを 1 に設定できるのは、term_frequency_flag パラメータが 1 に設定されている場合のみです。
has_section_attribute: section_attribute 情報を保存するかどうかを指定します。デフォルト値は true です。テキストの相関関係は、has_section_attribute パラメータを指定した後にのみ計算できます。
section_attribute_config: section_attribute に関するインデックス構成。この構成は、has_section_attribute パラメータが true に設定されている場合に有効になります。 has_field_id パラメータは、field_id 情報を保存するかどうかを指定します。 has_field_id パラメータのデフォルト値は true です。 field_id 情報が保存されていない場合、クエリプロセスはすべてのセクションがインデックスフィールドの最初のフィールドに属していると見なします。 has_section_weight パラメータは、重み情報を保存するかどうかを指定します。 has_section_weight パラメータのデフォルト値は true です。 compress_type パラメータは、section_attribute の圧縮構成方法を指定します。デフォルトでは、圧縮は無効になっています。構成方法は、複数値属性の compress_type パラメータの構成方法と同じです。 section_attribute_config が表示されない場合、デフォルトではすべてのパラメータにデフォルト構成が使用されます。
high_frequency_dictionary: ビットマップインデックスを作成するときに使用される語彙。ビットマップインデックスを作成するには、このパラメータを指定します。ビットマップインデックスを作成する必要がない場合は、このパラメータを空のままにします。
high_frequency_adaptive_dictionary: 適応ビットマップインデックスを作成するために使用されるルールの名前。適応ビットマップインデックスを作成するには、このパラメータを指定します。適応ビットマップインデックスを作成する必要がない場合は、このパラメータを空のままにします。
high_frequency_term_posting_type: ビットマップインデックスタイプ。ビットマップインデックスまたは適応ビットマップインデックスを作成するためのパラメータを指定する場合、このパラメータを both または bitmap に設定して、ビットマップインデックスタイプを構成できます。このパラメータを both に設定すると、ビットマップインデックスと転置インデックスが作成されます。このパラメータを bitmap に設定すると、ビットマップインデックスのみが作成されます。デフォルト値は bitmap です。
index_fields: インデックスを作成するフィールド。これらのフィールドは TEXT タイプで、同じアナライザを使用する必要があります。
boost: インデックス内のフィールドの重み。インデックスを作成するフィールドの名前と boost 値を指定できます。
index_analyzer: クエリ中に使用されるアナライザ。アナライザを指定すると、クエリ中にアナライザを使用してテキストが用語に変換されます。この場合、アナライザはフィールドで使用されるアナライザと一致しない場合があります。このパラメータを指定しない場合、フィールドで使用されるアナライザが使用されます。この場合、フィールドで使用されるアナライザは一致する必要があります。アナライザは、フィールドタイプが TEXT のインデックスにのみ追加できます。
file_compress: ファイル圧縮方法。OpenSearch Retrieval Engine Edition V3.9.1 以降では、ファイル圧縮方法を構成できます。転置インデックスのファイル圧縮を有効にするには、file_compress パラメータを圧縮方法のエイリアスに設定します。このパラメータを指定しない場合、ファイルは圧縮されません。
format_version_id: 転置インデックスのバージョン ID。デフォルト値は 0 で、IndexLib がベンチマークバージョンの AIOS に移行されたときに使用される転置インデックスの形式を指定します。OpenSearch Retrieval Engine Edition V3.9.1 以降では、このパラメータを 1 に設定できます。OpenSearch Retrieval Engine Edition V3.9.1 以降では、可変バイト圧縮、最適化された PForDelta アルゴリズム (NewPForDelta)、連続ドキュメント ID の dictInline ストレージなど、転置インデックスのストレージ形式を最適化する一連の手法がサポートされています。
high_frequency_adaptive_dictionary: アダプティブビットマップインデックスの作成に使用するルールの名前。アダプティブビットマップインデックスを作成するには、このパラメーターを指定します。アダプティブビットマップインデックスを作成する必要がない場合は、このパラメーターを空のままにします。
high_frequency_term_posting_type: ビットマップインデックスのタイプ。ビットマップインデックスまたはアダプティブビットマップインデックスを作成するためにパラメーターを指定する場合、このパラメーターを both または bitmap に設定して、ビットマップインデックスのタイプを設定できます。このパラメーターを both に設定すると、ビットマップインデックスと転置インデックスが作成されます。このパラメーターを bitmap に設定すると、ビットマップインデックスのみが作成されます。デフォルト値は bitmap です。
index_fields: インデックスを作成するフィールド。これらのフィールドは TEXT 型で、同じアナライザーを使用する必要があります。
boost: インデックス内のフィールドの重み。インデックスを作成するフィールドの名前とブースト値を指定できます。
index_analyzer: クエリ時に使用されるアナライザー。アナライザーを指定した場合、クエリ時にテキストをタームに変換するために使用されます。この場合、アナライザーはフィールドで使用されるアナライザーと一致しない場合があります。このパラメーターを指定しない場合、フィールドで使用されているアナライザーが使用されます。この場合、フィールドで使用されるアナライザーは一致している必要があります。アナライザーは、フィールドタイプがTEXTのインデックスにのみ追加できます。
file_compress: ファイル圧縮方式。OpenSearch Retrieval Engine Edition V3.9.1 以降では、ファイル圧縮方式を設定できます。file_compress パラメータに圧縮方式のエイリアスを設定すると、転置インデックスのファイル圧縮が有効になります。このパラメータを指定しない場合、ファイルは圧縮されません。
format_version_id: 転置インデックスのバージョン ID。デフォルト値は 0 で、IndexLib がベンチマークバージョンの AIOS に移行されたときに使用される転置インデックスの形式を指定します。OpenSearch Retrieval Engine Edition V3.9.1 以降では、このパラメーターを 1 に設定できます。OpenSearch Retrieval Engine Edition V3.9.1 以降では、可変バイト圧縮、最適化された PForDelta アルゴリズム (NewPForDelta)、連続ドキュメント ID の dictInline ストレージなど、転置インデックスのストレージ形式を最適化する一連の技術がサポートされています。
PACK インデックスのフィールドのサイズは 1 MB を超えることはできません。超えると、増分データのプッシュ時にエラーが発生します。
index_name パラメーターを summary に設定することはできません。
PACK インデックスのフィールドは TEXT 型である必要があります。
インデックスにアナライザーが指定されていない場合、同じインデックス内のすべてのフィールドに指定されたアナライザーは同じである必要があります。
ドキュメントにフィールドを指定する順序は、index_fields にフィールドがリストされている順序と同じである必要があります。
high_frequency_dictionary パラメーターと high_frequency_adaptive_dictionary パラメーターを同時に指定した場合、high_frequency_adaptive_dictionary パラメーターで指定されたルールに関係なく、high_frequency_dictionary パラメーターで指定された高頻度語を使用してビットマップインデックスが作成されます。
プライマリキー以外の列に作成されるすべての転置インデックスに対して format_version_id パラメーターを指定できます。オフラインフェーズが開始される前に、対応するフォーマットバージョンをサポートするバージョンに OpenSearch Retrieval Engine Edition をオンラインでアップグレードしてください。アップグレードしないと、読み込みに失敗します。新しいバージョンはオンラインでサポートされており、古いバージョンのフォーマットも読み取ることができます。
最大 32 フィールドに PACK インデックスを作成できます。
TEXT インデックス
TEXTインデックスの概要
TEXT インデックスは、TEXT 型のフィールドに作成される単一フィールドのインデックスです。アナライザーを使用して、テキストを複数の用語に変換します。用語ごとに個別の転置インデックスが作成されます。切り捨てと高頻度単語ビットマップまたは tfbitmap を使用して、検索パフォーマンスを向上させることができます。
項目 | df | ttf | tf | fieldmap | セクション情報 | 位置情報 | positionpayload | docpayload | termpayload |
サポートの有無 | サポート | オプション | オプション | サポート対象外 | サポート対象外 | オプション | オプション | オプション | オプション |
TEXTインデックスを設定するためのサンプルコード
{
"index_name": "text_index",
"index_type": "TEXT",
"term_payload_flag" : 1 ,
"doc_payload_flag" : 1 ,
"position_payload_flag" : 1,
"position_list_flag" : 1,
"term_frequency_flag" : 1,
"index_fields": "title",
"file_compress":"simple_compress1"
}次のパラメーターは、TEXTインデックスとPACKインデックスの構成で同じ意味を持ちます。index_name、index_type、term_payload_flag、doc_payload_flag、position_payload_flag、position_list_flag、term_frequency_flag、およびfile_compressです。例外として、TEXTインデックスの構成では、index_typeパラメーターをTEXTに設定する必要があり、index_fieldsパラメーターは1つのフィールドのみをサポートします。
TEXTインデックスのフィールドのサイズは1MBを超えることはできません。超えた場合、増分データのプッシュ時にエラーが発生します。
index_nameパラメータをsummaryに設定することはできません。
数値インデックス
NUMBERインデックスの概要
NUMBER インデックスは単一フィールドのインデックスです。NUMBER インデックスは、INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、および UINT64 タイプの整数データに対して作成される転置インデックスです。NUMBER インデックスが作成されるフィールドは、複数値フィールドにすることができます。複数値フィールドの各値に対して、個別の転記リストが作成されます。NUMBER インデックスには、次の項目を格納できます。
項目 | df | ttf | tf | fieldmap | セクション情報 | 位置情報 | positionpayload | docpayload | termpayload |
サポートの有無 | サポート | オプション | オプション | サポート対象外 | サポート対象外 | サポート対象外 | サポート対象外 | オプション | オプション |
次の表は、NUMBERインデックスのパフォーマンスを向上させるために使用できる方法について説明しています。
方法 | 説明 |
切り捨て | 構成に基づいて、一部の高品質ドキュメント用に個別の転置インデックスが作成されます。検索時には、このインデックスが最初に照会されます。これにより、システムが不要なドキュメントを取得することを防ぎます。主な取得では、取得パフォーマンスが 2 倍になります。詳細については、「クラスタ構成」を参照してください。 |
高頻度単語ビットマップ | ビットマップを使用して、一般的な高頻度単語を格納できます。これにより、インデックスで消費される領域が削減され、検索パフォーマンスが向上します。高頻度単語の格納にビットマップを使用する場合、取得できる項目は ttf、df、termpayload、docid のみです。高頻度辞書と適応型高頻度辞書を構成することで、ビットマップを使用して高頻度単語を格納できます。 |
tf ビットマップ | ビットマップを使用して、各ドキュメントの各用語の用語頻度情報を格納できます。ドキュメント頻度が高い用語の用語頻度情報の格納にビットマップを使用できます。このようにして、転置インデックス情報は失われません。 |
NUMBERインデックスを設定するためのサンプルコード
次のサンプルコードは、schema.jsonファイルでNUMBERインデックスを構成する方法の例を示しています。
{
"index_name": "number_index",
"index_type": "NUMBER",
"term_payload_flag" : 0,
"doc_payload_flag" : 0,
"term_frequency_flag" : 0,
"index_fields": "number_field",
"file_compress":"simple_compress1"
}NUMBERインデックスとPACKインデックスの設定では、index_name、index_type、term_payload_flag、doc_payload_flag、term_frequency_flag、file_compressのパラメーターの意味は同じです。例外として、NUMBERインデックスの設定では、index_typeパラメーターをNUMBERに設定する必要があり、index_fieldsパラメーターはINTEGER型のフィールドを1つだけサポートします。
ベストプラクティス: インデックスサイズを縮小するには、term_payload_flag、doc_payload_flag、および term_frequency_flag パラメータを 0 に設定することをお勧めします。
index_name パラメーターを summary に設定することはできません。
NUMBER インデックスは、複数の整数値に対して作成できます。NUMBER インデックスが作成されると、各値に対して個別の転置インデックスが作成されます。
STRING インデックス
STRINGインデックスの概要
STRING インデックスは単一フィールドのインデックスです。STRING インデックスは、STRING 型のデータに対して作成される転置インデックスです。STRING 型のフィールドのテキストは、用語に変換されません。各文字列値は、ポスティングリストが作成される個別の用語として使用されます。STRING インデックスが作成されるフィールドは、複数値フィールドにすることができます。複数のフィールド値は、区切り文字を使用して区切ることができます。各文字列値に対してポスティングリストが作成されます。検索パフォーマンスを向上させるために、切り捨て、高頻度単語ビットマップ、および tfbitmap を使用できます。
項目 | df | ttf | tf | fieldmap | セクション情報 | 位置情報 | positionpayload | docpayload | termpayload |
サポートの有無 | サポート | オプション | オプション | サポート対象外 | サポート対象外 | サポート対象外 | サポート対象外 | オプション | オプション |
STRINGインデックスを設定するためのサンプルコード
{
"index_name": "string_index",
"index_type": "STRING",
"term_payload_flag" : 1,
"doc_payload_flag" : 1,
"term_frequency_flag" : 1,
"index_fields": "user_name",
"file_compress":"simple_compress1"
}次のパラメーターは、STRINGインデックスとPACKインデックスの構成で同じ意味を持ちます: index_name、index_type、term_payload_flag、doc_payload_flag、term_frequency_flag、およびfile_compress。例外として、STRINGインデックスの構成では、index_typeパラメーターをSTRINGに設定する必要があり、index_fieldsパラメーターはSTRING型のフィールドを1つだけサポートします。このフィールドは複数の整数値をサポートします。
ベストプラクティス: インデックスサイズを縮小するには、term_payload_flag、doc_payload_flag、および term_frequency_flag パラメーターを 0 に設定することをお勧めします。
index_name パラメーターを summary に設定することはできません。
STRING インデックスは、複数の整数値に対して作成できます。STRING インデックスが作成されると、値ごとに個別の転置インデックスが作成されます。
PRIMARYKEY64またはPRIMARYKEY128インデックス
PRIMARYKEY64インデックスとPRIMARYKEY128インデックスの概要
PRIMARYKEY インデックスは、ドキュメントのプライマリキーインデックスです。PRIMARYKEY インデックスは 1 つだけ構成できます。PRIMARYKEY インデックスはすべての種類のフィールドをサポートします。インデックスフィールドのハッシュ値とドキュメント ID の間のマッピングを格納して、重複を削除できます。各ドキュメントのハッシュ値を取得できます。
項目 | df | ttf | tf | fieldmap | セクション情報 | 位置情報 | positionpayload | docpayload | termpayload |
サポートの有無 | サポート | サポート対象外 | サポート対象外 | サポート対象外 | サポート対象外 | サポート対象外 | サポート対象外 | サポート対象外 | サポート対象外 |
PRIMARYKEY64 インデックスまたは PRIMARYKEY128 インデックスを構成するためのサンプルコード
{
"index_name": "primary_key_index",
"index_type" : "PRIMARYKEY64",
"index_fields": "product_id",
"has_primary_key_attribute": true,
"is_primary_key_sorted": true,
"pk_storage_type" : "sort_array",
"pk_hash_type" : "default_hash"
}index_name: インデックスの名前。
index_type: インデックスのタイプ。index_type パラメーターには、PRIMARYKEY64 または PRIMARYKEY128 を設定できます。数値の 64 と 128 はハッシュ値のビット数を示します。ほとんどの場合、64 ビットで十分です。
index_fields: インデックスを作成するフィールド。1 つのフィールドのみがサポートされています。すべてのフィールドタイプがサポートされています。このパラメーターは、主キーに対応するフィールドに設定することをお勧めします。
has_primary_key_attribute: 主キーの属性は、ドキュメント ID と主キーのハッシュ値間のマッピングを指します。クエリで重複を削除する必要がある場合、またはフェーズ 1 クエリで主キーのハッシュ値を返す必要がある場合は、has_primary_key_attribute パラメーターを指定する必要があります。このパラメーターのデフォルト値は false です。
is_primary_key_sorted: PRIMARYKEY インデックスが最適化されているかどうかを指定します。このパラメーターを true に設定すると、ダンプアウトされるインデックスは主キーでソートされます。これにより、クエリが高速化されます。デフォルト値は false です。
pk_storage_type: 主キーの格納方法を指定します。有効な値は、sort_array、hash_table、および block_array です。デフォルト値は sort_array です。
sort_array: スペースを節約します。
hash_table: パフォーマンスが向上します。
block_array: ブロックキャッシュと mmap() 関数を設定できます。
pk_hash_type: 主キーフィールドのハッシュ値を計算する方法。有効な値は、default_hash、murmur_hash、および number_hash です。デフォルト値は default_hash です。
default_hash: 文字列のデフォルトのハッシュメソッドを使用します。
murmur_hash: パフォーマンスを向上させることができる MurmurHash 関数を使用します。
number_hash: ハッシュ値の代わりに主キーフィールドの数値を使用します。このメソッドは、主キーフィールドが NUMBER タイプの場合に使用できます。この方法では、ハッシュよりも解決が速くなります。ただし、数値はハッシュ値よりもクラスタ化される可能性が高くなります。
PRIMARYKEY64 インデックスまたは PRIMARYKEY128 インデックスは、すべての種類のフィールドをサポートします。
PRIMARYKEY インデックスはドキュメントの主キーです。そのため、設定できる PRIMARYKEY インデックスは最大で 1 つです。
PRIMARYKEY インデックスは、null 値を含むフィールドをサポートしていません。
PRIMARYKEY インデックスでは、file_compress パラメーターを設定してファイル圧縮を有効にすることはできません。
index_name パラメーターを summary に設定することはできません。
日付インデックス
DATEインデックスの概要
DATE インデックスは日付と時刻の値に作成され、時間の範囲をクエリするために使用されます。
日付インデックスを設定するためのサンプルコード
"fileds":
[
{"field_name":"inputtime", "field_type":"UINT64", "binary_field": false},
...
]
...
"indexs":
[
{
"index_name": "inputtime", // 1
"index_type" : "DATE", // 2
"index_fields": "inputtime", // 3
"build_granularity": "minute", // 4
"file_compress":"simple_compress1" // 5
},
...
]index_name: 転置インデックスの名前。クエリステートメントでインデックスベースのクエリを指定する必要があります。
index_type: インデックスのタイプ。値をDATEに設定します。
index_fields: インデックスを作成するフィールド。field_typeパラメーターをUINT64、DATE、TIME、またはTIMESTAMPに設定して、DATEインデックスを作成できます。
build_granularity: ターム辞書が構築される粒度。このパラメーターをminuteに設定すると、データ内で秒またはマイクロ秒で表される値は無視され、0に変換されます。分単位で表される値のみをクエリできます。
file_compress: ファイル圧縮方式。詳細については、このトピックの「PACKインデックス」セクションを参照してください。
構文
DATE インデックスのクエリ構文については、「クエリ句」トピックの日付クエリセクションを参照してください。
DATE インデックスはビットマップをサポートしていません。
用語辞書は、年、月、日、時、分、秒、ミリ秒の 7 つの粒度のいずれかで構築できます。粒度がマイクロ秒レベルに近いほど、より多くのストレージ容量が必要になります。
DATE、TIME、および TIMESTAMP 値は、1970 年 1 月 1 日 00:00:00 00.000 から経過したミリ秒で表されるタイムスタンプに解決されます。グリニッジ標準時 (GMT) および協定世界時 (UTC) のタイムスタンプは、タイムゾーンに関係なくサポートされています。タイムスタンプに基づいて転置インデックスが作成されます。対応する条件に基づいてタイムスタンプ範囲をクエリする必要もあります。
クエリインターフェース用語は null 項をサポートしています。enable_null が true に設定されているフィールドに関するレコードをクエリできます。
index_name パラメータを summary に設定することはできません。
RANGE インデックス
RANGEインデックスの概要
RANGE インデックスは整数値に作成され、特定の範囲のドキュメントをクエリするために使用されます。RANGE インデックスを使用してフィルター句で指定された範囲フィルタリングを置き換えると、クエリのパフォーマンスが大幅に向上します。フィルター句を使用してフィルタリングされるドキュメントが多いほど、クエリのパフォーマンスの向上はより顕著になります。
RANGEインデックスを設定するためのサンプルコード
"fileds":
[
{"field_name":"price", "field_type":"INT64", "binary_field": false},
...
]
"indexs":
[
{
"index_name": "inputtime",
"index_type" : "RANGE",
"index_fields": "price",
"file_compress":"simple_compress1"
},
...
]構文
RANGEインデックスのクエリ構文については、「クエリ句」トピックの値の範囲クエリセクションを参照してください。
field_type パラメーターを INT64、INT32、UINT32、INT16、UINT16、INT8、または UINT8 に設定して、RANGE インデックスを作成できます。
RANGE インデックスは、null 値を含むフィールドをサポートしていません。
RANGE インデックスは、複数の値を含むフィールドをサポートしていません。
index_name パラメーターを summary に設定することはできません。
空間インデックス
SPATIAL インデックスの概要
SPATIAL インデックスは、指定された地点の経度と緯度に対して作成され、ポイント範囲クエリ、ラインクエリ、ポリゴンクエリなどの地理空間クエリに使用されます。
SPATIAL インデックスを構成するためのサンプルコード
"fileds":
[
{"field_name":"location", "field_type":"LOCATION"},
{"field_name":"line", "field_type":"LINE"},
{"field_name":"polygon", "field_type":"POLYGON"},
...
]
....
"indexs":
[
{
"index_name": "inputtime", // インデックス名
"index_type" : "SPATIAL", // インデックスタイプ
"index_fields": "location", // インデックスフィールド
"max_search_dist": 10000, // 最大検索距離
"max_dist_err": 20, // 最大距離誤差
"distance_loss_accuracy":0.025, // 距離損失精度
"file_compress":"simple_compress1" // ファイル圧縮
},
...
]index_name: 転置インデックスの名前。クエリステートメントでインデックスベースのクエリを指定する必要があります。
index_type: インデックスのタイプ。値をSPATIALに設定します。
index_fields: インデックスを作成するフィールド。フィールドタイプはLOCATION、LINE、およびPOLYGONである必要があります。
LOCATION: LOCATIONデータ型のフィールドの値は、location={Longitude} {Latitude}形式(例:location=116 40)で指定できます。
LINE: LINEデータ型のフィールドの値は、line=location,location,location...^]location,location...形式(例:line=116 40,117 41,118 42^]...)で指定できます。OpenSearch Retrieval Engine Edition SDKを使用してデータをプッシュする場合は、LINEフィールドをline: ["location,location,location...", "location,location,location..."]形式で指定します。
POLYGONデータ型のフィールドをOpenSearch Retrieval Engine Editionにプッシュする場合は、polygon=location1,location2,...location1^]...形式を参照してください。OpenSearch Retrieval Engine Edition SDKを使用してPOLYGONデータ型のフィールドをOpenSearch Retrieval Engine Editionにプッシュする場合は、line : ["location,location,location",...]形式を参照してください。ポリゴンは凸型ポリゴンまたは凹型ポリゴンにすることができます。ポリゴンの始点と終点は一致している必要があります。2つの隣接するエッジは同一線上にあることはできません。ポリゴンのエッジは自己交差することはできません。
max_search_dist: クエリ中にカバーされる最大距離(直径)。単位:メートル。max_search_distパラメータの値は、max_dist_errパラメータの値よりも大きい必要があります。
max_dist_err: ターム辞書が構築されるときの最大距離(直径)エラー値。単位:メートル。このパラメータの最小値は0.05メートルです。
distance_loss_accuracy: 精度の損失。エンジンは、精度の損失を犠牲にして、ポリラインとポリゴンクエリの性能を向上させます。次の方法が使用されます。最外層までの距離の範囲 = ポリラインまたはポリゴンの外接長方形の対角線の長さ × distance_loss_accuracyパラメータの値。distance_loss_accuracyパラメータのデフォルト値は0.025です。
ファイル圧縮方法については、このトピックの「PACKインデックス」セクションを参照してください。
構文
SPATIAL インデックスのクエリ構文については、「クエリ句」トピックの地理クエリセクションを参照してください。
index_name パラメーターを summary に設定することはできません。
ラインとポリゴンの座標は、経度 180 度を横切る場合に関係なく、平面世界地図にマッピングされ、ラインクエリとポリゴンクエリの範囲が決定されます。位置フィールドの転置インデックスのクエリ結果は正確です。ラインフィールドとポリゴンフィールドの転置インデックスのクエリ結果はフィルタリングする必要があります。