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

Lindorm:列マッピングの構成

最終更新日:Nov 09, 2025

オープンソース API を使用して Lindorm 検索インデックスにアクセスするには、ワイドテーブルからインデックステーブルにデータを同期する必要があります。これは、ワイドテーブルとインデックステーブルの間に列マッピングを作成することで実現できます。このトピックでは、列マッピングの設定項目について説明します。

制限

検索インデックスのインデックス名とインデックスキー列名をカスタマイズする場合は、詳細については、「Lindorm Shell を使用して検索インデックスを管理する」をご参照ください。

構成例

ワイドテーブルとインデックステーブル間の列マッピングは、JSON ファイルを使用して設定されます。次の例は、列マッピングの設定サンプルです。この例では、ワイドテーブル testTable のデータがインデックステーブル democollection に同期されます。ワイドテーブルの f1:name 列はインデックステーブルの name_s 列にマッピングされ、f1:age 列は age_i 列にマッピングされます。

{
  "sourceNamespace": "default",
  "sourceTable": "testTable",
  "targetIndexName": "democollection",
  "indexType": "ES",
  "rowkeyFormatterType": "STRING",
  "fields": [
    {
      "source": "f1:name",
      "targetField": "name_s",
      "type": "STRING"
    },
     {
      "source": "f1:age",
      "targetField": "age_i",
      "type": "INT"
    }
  ]
}
重要

列マッピングの各列が検索エンジンで明示的に定義されており、列名とデータの型がマッピングと一致していることを確認してください。

設定項目

次の表に、ワイドテーブルとインデックステーブル間の列マッピングを設定するために使用される設定項目を示します。

パラメーター

説明

sourceNamespace

ワイドテーブルの名前空間。ワイドテーブルに名前空間がない場合、デフォルトの名前空間は `default` です。

sourceTable

必須。ワイドテーブルの名前。

targetIndexName

必須。Lindorm 検索エンジン内のインデックステーブルの名前。

indexType

デフォルト値は `ES` です。

rowkeyFormatterType

ワイドテーブルの各行のプライマリキーを、インデックステーブルのプライマリキー ID (String データ型) にマッピングする方法を指定します。次の値がサポートされています:

  • `STRING`: ワイドテーブルのプライマリキーが `row1` や `order0001` などの String 型である場合、この値を使用します。このメソッドは `Bytes.toString(byte[])` 関数を使用して、ワイドテーブルのプライマリキーをインデックステーブルのプライマリキー ID に変換します。インデックス内の条件に基づいて結果データのプライマリキー ID を見つけた後、`Bytes.toBytes(String)` 関数を使用してプライマリキー ID をワイドテーブルのプライマリキーに変換し直すことができます。

  • `HEX`: ワイドテーブルのプライマリキーが `12345` などの String 型でない場合、この値を使用します。このメソッドは `org.apache.commons.codec.binary.Hex` パッケージの `encodeAsString(byte[])` 関数を使用して、ワイドテーブルのプライマリキーをインデックステーブルのプライマリキー ID に変換します。インデックス内の条件に基づいて結果データのプライマリキー ID を見つけた後、`Hex.decodeHex(String.toCharArray())` 関数を使用してプライマリキー ID をワイドテーブルのプライマリキーに変換し直すことができます。

fields

マッピングする列と型を指定します。これは、次の 3 つのパラメーターで構成されます。複数の列を設定する場合は、コンマ (,) で区切ります。

  • source: ワイドテーブルでマッピングする列の名前。コロン (:) を使用して、カラムファミリー名と列名を区切ります。

  • targetField: ソース列がマッピングされるインデックステーブル内の列の名前。

  • type: ワイドテーブルでマッピングする列のデータの型。値は大文字と小文字を区別します。次のデータの型がサポートされています:

    • INT

    • LONG

    • STRING

    • BOOLEAN

    • FLOAT

    • DOUBLE

    説明

    ワイドテーブルのデータの型が、設定されたデータの型と一致していることを確認してください。一致しない場合、インデックスデータの生成に影響が出ます。LindormTable では、ワイドテーブルにデータを格納する前に、Bytes.toBytes(string/long/int/...) メソッドを呼び出してデータをバイトに変換します。