# 新建solr集合(补充)
# 1.idea连接服务器
# 2.找到solr集合的存放位置
# 3.新建solr结果集,从其他结果集中复制配置文件到新建文件夹中
# 4.修改test类主方法实体类为包含全部solr结果集字段的实体类(单表建议用entity),并执行,获取输出的配置信息;
# 5.将sql1 和sql2放入到db-data-config.xml文件中,部分信息需手动修改(有查询条件需要手动添加)
6.将sql3放入到managed-schema中,主键的required属性改为true,并修改主键Id为对应主键Id
解析:
* sq1:sq1为查询语句,一般是查所有字段的,如果有特殊需求自行修改
* sq2:<field column="detailId" name="detailId"/> 把sql查询中column属性的字段值关联到managed-schema文件下<field name为name属性值的域名。一般情况下两边字段应保持一致,所以除非加字段,不然这块不需要改动
* sql3:<field>属性解析
* name:域名
* type:域名类型(一般使用生成的类型值就好,如果出现了null,就是程序没有收录这种类型的转换,自行添加类型并修改程序。)
* 特殊类型:string
* 1)solr的string最大长度为32766字节,超过这个长度会报错,如果有这样的字段,自行把类型换成text_general
* 2)有特殊需求,例如根据申购单号查询的数据忽略大小写,可用str_lower(全部变为小写,查询时也把传参改为小写),如果使用分词,则使用text_ik或者text_cn
* (所有自定义类型都需要先配置好才能使用,上面使用的都是已经配置好的)
* indexed:是否作为索引(即是否作为查询条件)
* stored:是否存储可读(即是否能返回结果)
* multiValued:是否可以为多值(一般用在复合字段)
* required:是否必须(一般只用在主键id,有特殊需求也可以加上)*
# 6.1设置查询联合查询字段
1)定义字段名称
<field name="keyword" type="text_cn" indexed="true" stored="false" multiValued="true"/>
2)通过copyField属性将对应字段放入联合查询字段中 //文档位置通过查询copyField获取
<copyField source="goodsName" dest="keyword"/>
<copyField source="goodsModel" dest="keyword"/>
<copyField source="goodsBrandName" dest="keyword"/>
<copyField source="goodsSpec" dest="keyword"/>
# 7-1.连接服务器docker,进入solr容器
docker exec -ti solr-1 /bin/bash
# 7-2.进入bin目录
cd bin
# 7-3.上传配置到zookeeper(两个deviceBidResult换成对应的集合文件夹名称)
solr zk upconfig -n deviceBidResult -d /opt/solr/server/solr/configsets/deviceBidResult/conf
# 8-1.进入solr管理页面Collection选项,并点击 Add Collection 按钮
# 8-2.2. 选择刚上传的配置,填好参数
新建完成后检查数据节点是否有重复(重复的节点去掉然后再插入一个新节点)