前提条件

参考Shell访问指导,下载安装Shell,并配置好白名单。

下载默认的配置集模板

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

cd lindorm-search-tool/bin
./solr zk ls /configs         // 查询已有的配置集列表
./solr zk downconfig -d . -n _indexer_default     // 下载配置集_indexer_default到当前目录
            

执行上述命令成功后,将会在当前目录下看到一个conf的目录,其中有两个重要的文件:managed-schemasolrconfig.xml

创建新的配置集

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

  1. 打开managed-schema文件。
  2. 增加两个新的索引列定义。
<field name="name" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="age" type="pint" indexed="true" stored="true" docValues="true"  multiValued="false" />     
说明 name是string类型,age是基本int类型(pint代表的就是int,plong代表的就是long),两个列都需要建立索引indexed=true,并且都需要存储原始数据stored=true

每增加一个新列,都需要在文件中定义好,当需要增加非常多的列时,定义起来会比较复杂。此时,可以使用Search服务提供的动态列能力,参考managed-schema中的dynamicField定义,有了它之后,不需要额外定义每个列,只需要在写入数据时指定的列名称后缀与定义保持一致即可,例如:name_s可以自动匹配*_sage_i可以自动匹配*_i

  • 上传配置集。

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

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

建议

  • 建议使用dynamicField功能,不单独定义每个索引列,避免频繁修改managed-schema文件。
  • 每个索引需要有自己的配置集,不建议多个索引共享配置集。
  • 如果需要自己定义配置,请下载_indexer_default 配置集后在此基础上修改。