推特 阿里云技术文档正文

快速入门_标准版全文索引solr(即将下线)_HBase 标准版_云数据库 HBase 版

admin 阿里云技术文档 2020-02-11 198 0
阿里云服务器优惠

快速入门

全文索引功能目前已经全面升级,使用老架构的标准版全文索引服务即将下线,新用户请移步增强版全文索引功能

本文从一个简单的 Demo 介绍开始,快速入门体验云 HBase “全文索引服务”的功能。整体流程是:开通全文服务 → 创建索引 → 写入HBase数据 → 查看 Solr 索引数据

1. 开通全文索引服务

在云 HBase 实例控制台左侧“全文索引服务”标签页,点击申请开通全文索引服务,等待片刻后服务即可使用。如图:

快速入门_标准版全文索引solr(即将下线)_HBase 标准版_云数据库 HBase 版 阿里云技术文档 第1张

开通成功之后,如图:

快速入门_标准版全文索引solr(即将下线)_HBase 标准版_云数据库 HBase 版 阿里云技术文档 第2张

2. 创建索引

创建索引核心分为3步:创建 HBase 表 solrdemo、创建 Solr 表 democollection、创建 solrdemodemocollection 的字段映射关系。下面介绍一个简单示例演示,快速体验服务使用流程。

2.1 创建 HBase 表

使用 HBase Shell,创建 HBase 表如下:

  1. hbase shell> create 'solrdemo', {NAME=>'info', REPLICATION_SCOPE=>'1'}

2.2 创建 Solr 表

进入 Solr WebUI 创建 democollection 表,选择 _indexer_default 配置目录 如下图:

快速入门_标准版全文索引solr(即将下线)_HBase 标准版_云数据库 HBase 版 阿里云技术文档 第3张

如何访问 Solr WebUI 参考链接

2.3 创建索引映射关系

然后我们创建 HBase 表 solrdemo 到 Solr 表 democollection 的索引字段映射关系配置文件,简单起见,我们假设solrdemoinfo:name 映射到 democollectionname_s 字段,则编辑 demo.xml 文件内容如下:

  1. <indexer table="solrdemo">
  2. <field name="name_s" value="info:name" type="string" />
  3. <param name="update_version_l" value="true"/>
  4. </indexer>

然后下载 solr-7.3.1-ali-1.0.tar.gz 包并解压如下:

  1. wget http://public-hbase.oss-cn-hangzhou.aliyuncs.com/installpackage/solr-7.3.1-ali-1.1.tgz
  2. tar zxvf solr-7.3.1-ali-1.1.tgz

修改 solr-7.3.1-ali-1.1/bin/solr.in.sh 文件的 ZK_HOST 值,去掉注释,并设置

  1. ZK_HOST="hb-xxxxxx-master2-001.hbase.rds.aliyuncs.com:2181,hb-xxxxxx-master3-001.hbase.rds.aliyuncs.com:2181,hb-xxxxxx-master1-001.hbase.rds.aliyuncs.com:2181/solr"

此地址见 Solr 开通页面的客户端访问地址,如下:

快速入门_标准版全文索引solr(即将下线)_HBase 标准版_云数据库 HBase 版 阿里云技术文档 第4张

注:上述配置流程中的 ZK 地址是内网地址,如果是想通过公网访问,请填写 ${公网 ZK 地址}/solr 即可。公网 ZK 地址获取,请参考 公网访问方案

接下来运行以下命令创建 demoindex 索引,把 solrdemodemocollection 根据 demo.xml 关联起来,如下:

  1. solr-7.3.1-ali-1.1/bin/solr-indexer add -n demoindex -f demo.xml -c democollection

接下来,我们运行 solr-indexer list命令查看刚刚添加的索引是否已经添加成功,如下:

  1. solr-7.3.1-ali-1.1/bin/solr-indexer list

显示如下:

  1. demoindex
  2. ......
  3. + Connection params:
  4. + solr.zk = hb-xxxxxx-master2-001.hbase.rds.aliyuncs.com:2181,hb-xxxxxx-master3-001.hbase.rds.aliyuncs.com:2181,hb-xxxxxx-master1-001.hbase.rds.aliyuncs.com:2181/solr
  5. + solr.collection = democollection
  6. + Indexer config:
  7. 142 bytes, use -dump to see content
  8. + Processes
  9. + 4 running processes //注:有多少个worker,就有多少个running,表示成功了
  10. + 0 failed processes
  11. ......

有多少个 Worker,就有多少个 running process ,表示成功了。比如此实例规格是 4 个 Worker 的 HBase 实例,那这里就有 4 个 running process。如果没有4个,请检查上述步骤配置是否有错误,或联系“云HBase答疑”客服咨询 & 帮助。

注意:其他的 solr-indexer 命令请参阅命令 help,请仔细阅读 help,并确认命令效果后再执行。

3. 写入HBase 数据

HBase Shell 写入简单一个数据如下:

  1. hbase shell> put 'solrdemo','row1','info:name','Tom'

4. 查看 Solr 索引数据

进入 Solr WebUI 的选择对应 Collection,直接点击 query 按钮查看数据,如图:

快速入门_标准版全文索引solr(即将下线)_HBase 标准版_云数据库 HBase 版 阿里云技术文档 第5张

可以看到,Solr 的 document 数据的 id 字段就是 HBase 的 RowKey。在实际进行条件查询的时候,我们可以使用 Solr API 进行查询,拿到 Solr 返回的 id 列表,逐个 id 当作 HBase 的 RowKey 调用 HBase Get 接口即可拿到符合各种复杂条件的 HBase数据了。

注:插入数据后,默认 Solr 延迟 15s 左右,即为 auto commit 时间间隔,所以可能需要等一下才能看到。当然,也可以主动触发 commit 来立刻查看刚写入的数据。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

-----