# 新建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. 选择刚上传的配置,填好参数

新建完成后检查数据节点是否有重复(重复的节点去掉然后再插入一个新节点)

# 9.导入数据

Last Updated: 3/15/2021, 3:32:05 PM