通过开源客户端使用搜索索引需要将宽表的数据同步至索引表,同步的方法是建立宽表和索引表的列映射,本文介绍列映射的配置项说明。
配置示例
宽表和索引表的列映射采用JSON文件实现,列映射的配置示例如下,将宽表
testTable
的数据同步至索引表democollection
,宽表的f:name
这一列映射到索引表的f_name_s
这一列,宽表的f:age
这一列映射到索引表的f_age_i
这一列。{
"sourceNamespace": "default",
"sourceTable": "testTable",
"targetIndexName": "democollection",
"indexType": "SOLR",
"rowkeyFormatterType": "STRING",
"fields": [
{
"source": "f:name",
"targetField": "name_s",
"type": "STRING"
},
{
"source": "f:age",
"targetField": "age_i",
"type": "INT"
}
]
}
配置项说明
宽表和索引表的列映射配置参数说明如下:
参数 | 说明 |
---|---|
sourceNamespace | 宽表的Namespace名,如果宽表没有Namespace,默认Namespace名为default。 |
sourceTable | 必选项,宽表的表名。 |
targetIndexName | 必选项,Lindorm搜索引擎的索引表名。 |
indexType | 默认配置为SOLR。 |
rowkeyFormatterType | 表示宽表中每行主键映射到索引表主键ID(数据类型为String)的方式,支持以下两种:
|
fields | 指定映射的列和类型,由以下三个参数组成。如果有多个列的配置使用半角逗号(,)分隔。
|
targetField参数说明
targetField参数表示宽表的列映射到索引表中的列。推荐使用搜索引擎提供的动态列功能,搜索引擎通过动态列的后缀自动识别这一列的数据类型,格式为
列名:列的数据类型
,列名以name为例,动态列支持的数据类型如下表:数据类型 | targetField示例值 |
---|---|
INT | name_i |
LONG | name_l |
STRING | name_s |
STRING(映射为中文分词的数据类型) | name_ik |
BOOLEAN | name_b |
FLOAT | name_f |
DOUBLE | name_d |