文档

通过开源客户端访问并使用搜索索引

更新时间:

云原生多模数据库 Lindorm宽表引擎推出一种新的索引类型,称为搜索索引(SearchIndex)。本文介绍使用开源HBase API和Solr API访问并使用搜索索引。

背景信息

搜索索引通过融合Lindorm宽表引擎(兼容开源HBase API)和Lindorm搜索引擎(兼容开源Solr API)对外提供统一易用的访问接口,可以满足丰富的查询需求。标准使用方式是通过Lindorm SQL,为了方便更多的用户,也可以通过开源客户端使用搜索索引,有关搜索索引的具体介绍请参见搜索索引介绍

说明

如果您是通过Lindorm SQL创建的表,请通过SQL API使用搜索索引。

前提条件

  • 已安装Java环境,要求安装JDK 1.8及以上版本。

  • 已将客户端IP添加至Lindorm白名单中,具体操作请参见设置白名单

操作步骤

  1. 进入HBase Shell访问环境,具体操作请参见通过Lindorm Shell访问宽表引擎

  2. 在HBase Shell创建宽表,表名为testTable

    create 'testTable', {NAME => 'f'}
  3. 创建索引表,索引表的表名为democollection。您可以通过以下任一方式创建索引表。

  4. 映射宽表列和索引列。例如将表testTable中的f:name(列族为f,列名为name)这一列映射到索引表democollectionname_s这一列。

    1. 在HBase Shell解压文件的bin目录中创建JSON文件(文件名为schema),将以下代码复制至JSON文件中。

      {
        "sourceNamespace": "default",
        "sourceTable": "testTable",
        "targetIndexName": "democollection",
        "indexType": "SOLR",
        "rowkeyFormatterType": "STRING",
        "fields": [
          {
            "source": "f:name",
            "targetField": "name_s",
            "type": "STRING"
          }
        ]
      }
      说明

      JSON文件中的参数说明请参见配置列映射

    2. 进入HBase Shell环境,执行以下命令完成宽表列和索引表列的映射关系。

      alter_external_index 'testTable', 'schema.json'
      说明

      关于宽表列和索引表列的映射管理操作请参见管理列映射

  5. 在表testTable中写入一条数据。宽表和索引表的列映射关系配置完成后,实时写入宽表中的数据将自动同步到索引表中。对于宽表中的历史数据,需要手动执行全量构建索引才可以完成数据同步,具体操作请参见构建全量数据索引

    put 'testTable', 'row1', 'f:name', 'foo'
  6. 查询索引数据。

    1. 通过搜索引擎的集群管理系统查询索引数据,获取宽表主键row1,具体操作请参见查询索引数据

    2. 进入HBase Shell环境,执行以下命令查询宽表数据。

      get 'testTable','row1'

      返回内容如下:

      COLUMN                                         CELL
       f:name                                        timestamp=1644462597661, value=foo
      1 row(s)
      Took 0.0942 seconds
  7. 通过LTS页面查看实时数据的同步任务状态。宽表和索引表的列映射关系配置完成后,实时写入宽表中的数据将自动同步到索引表中。

    1. 登录LTS操作页面。在Lindorm控制台上单击目标实例ID,左侧导航栏选择宽表引擎 > 搜索索引(SearchIndex),在数据同步管理 UI后单击ClusterManager公网ClusterManager专有网络

    2. 左侧导航栏选择Lindorm Search > 实时同步

      查看任务状态
      说明

      实时数据同步的延迟指标可以通过云监控控制台设置,最大任务延迟的报警阈值可以设置为600000毫秒,具体操作请参见云产品监控