全部产品
云市场

如何配置Schema

更新时间:2020-03-10 18:07:34

Solr 客户端工具包准备

首先需要下载解压客户端

  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="ld-xxxx-proxy-zk.hbaseue.9b78df04-b.rds.aliyuncs.com:2181/solr"

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

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

下载默认配置集

进入命令行,下载提供的默认配置集_indexer_default,在此基础上进行编辑,添加业务自定义的配置。

  1. cd solr-7.3.1-ali-1.1/bin
  2. ./solr zk downconfig -d . -n _indexer_default

执行上述命令成功后,将会在当前目录下看到一个conf的目录。在其中有一个managed-schema的文件,索引相关的列配置都在这个文件中,详细的配置说明可参考社区文档

创建新的配置集

下面给出一个简单的示例:

  • 打开managed-schema文件
  • 增加两个新的列定义

    1. <field name="name" type="string" indexed="true" stored="true" required="false" multiValued="false" />
    2. <field name="age" type="pint" indexed="true" stored="true" docValues="true" multiValued="false" />

    name是string类型,age是基本int类型(pint代表的就是int,plong代表的就是long),两个列都需要建立索引,并且需要存储。undefined上面每个列都需要自己定义,当列非常多时,定义起来会比较复杂,此时,可以使用Solr提供的动态列能力,可以参考managed-schema中的dynamicField定义,有了它之后,不需要额外定义每个列,只需要后缀与定义保持一致即可。undefined

  • 上传配置集 修改完后,可以创建一个属于自己的配置集(建议每个collection对应一个配置集),命令如下:

    1. ./solr zk upconfig -d conf/ -n myconf
  • 在Solr WEB界面查看配置是否上传成功undefined

创建collection

可以通过执行命令创建

  1. ./solr create_collection -n myconf -shards 2 -c mycollection

或者在Sole WEB界面上创建undefined