windows安装solr
一.solr windows安装流程
官网下载地址:https://solr.apache.org/downloads.html
我下载的是8.11.2版本,注意如果需要下最新版本需要jdk版本比较偏高,不然启动无法兼容问题
下载完后,解压到自己文件夹位置
启动solr: 命令窗口使用管理员身份启动
进入到软件bin 目录下: \file\solr-8.11.2\bin
常用命令:
//solr服务默认端口为8983
solr start
//可以指定端口
solr start -p 8984
//关闭solr服务的所有端口
solr stop -all
//关闭solr服务的指定端口
solr stop -p 8984
启动成功后访问地址:http://localhost:8983/
二导入mysql 数据到solr
cmd 命令创建实例:
solr create -c "zyy-test"
说明:zyy-test 可以是你自己创建的实例名称
创建完后ui界面可以看到自己创建的实例,不用命令也可以在ui上创建看个人
修改配置:
1.导入jar包
数据库驱动的jar:mysql-connector-java-8.0.11.jar (注意这里jar包的版本要根据你数据库的版本来我的数据库是mysql8.0)
data-import的jar:在根目录dist下有这两个包solr-dataimporthandler-8.11.2.jar和solr-dataimporthandler-extras-8.11.2.jar。
复制这三个jar包到\solr-8.11.2\server\solr-webapp\webapp\WEB-INF\lib下
2.修改配置,修改目录:\solr-8.11.2\server\solr\zyy_test\conf
上一步创建好的实例可以在solr 文件里面看到
我们进入目录\solr-8.11.2\server\solr\zyy_test\conf
data-config.xml 配置文件配置,没有文件就添加文件添加数据源与映射表
<dataConfig>
<dataSource
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/txxy?characterEncoding=utf-8"
user="zyy"
password="#alitest_wz92" />
<document>
<entity name="phone_area" query="select * from phone_area">
<field column="cname" name="cname" />
</entity>
<entity name="tb_xzqh_areas" query="select * from tb_xzqh_areas">
<field column="id" name="id" />
<field column="code" name="code" />
<field column="name" name="name" />
<field column="cityCode" name="cityCode" />
<field column="provinceCode" name="provinceCode" />
<field column="modify_time" name="modify_time" />
</entity>
</document>
</dataConfig>
修改solrconfig.xml 文件需要引入数据源
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
修改 managed-schema 文件,有些版本名称叫schema,我在这里采坑了
添加表对应分词字段,否则无法显示
<field name="cname" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="code" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="name" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="cityCode" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="provinceCode" type="string" indexed="true" stored="true" multiValued="false"/>
对应表:
CREATE TABLE `tb_xzqh_areas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(6) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
`cityCode` varchar(6) DEFAULT NULL,
`provinceCode` varchar(6) DEFAULT NULL,
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `udx_areas_code` (`code`)
) ENGINE=InnoDB AUTO_INCREMENT=10886 DEFAULT CHARSET=utf8 COMMENT='县级(区县)';
CREATE TABLE `phone_area` (
`rcode` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
`ccode` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
`acode` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
`rname` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`cname` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`aname` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`nname` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
KEY `idx_ccode` (`ccode`),
KEY `idex_acode` (`acode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
配置完毕后重启sorl
导入数据:
全量查询导入的数据:
就这样完成了数据导入
三.删除导入的数据
在solr客户端,访问你的索引库(我认为最方便的方法)
1)documents type 选择 XML
2)documents 输入下面语句
<delete><query>*:*</query></delete>
<commit/>
点击Submit Document 即可
2、solr-用url,使用 stream 相关参数删除数据:
如:
根据id删除数据
http://localhost:8080/solr/update/?stream.body=
id值&stream.contentType=text/xml;charset=utf-8&commit=true
根据查询参数条件删除数据
http://localhost:8080/solr/update/?stream.body= 参数&stream.contentType=text/xml;charset=utf-8&commit=true
stream 相关参数:
stream.file=(服务器本地文件);
stream.url 分别指到你的删除文本,这里是直接字符串内容用 stream.body 参数。
commit 参数是指提交,提交了才能看到删除效果。
删除指令有两种,一是:用 包装;二是: 包装。指令都很明显,一个是 id 值(是在 schema.xml 的 uniqueKey 所指字段的值,而不是索引内部的 docId);query 值是查询串,如:title:“solr lucene”。
最后,最后祝君好运~~