背景:
因业务需要, 需要将数据存储在solr中做查询服务.
之前没有接触过solr,看了点教程,发现玩得转,在这里先记录一下安装及初始化的笔记.
具体的java的增删改查,通过实现了 CrudQueryCommonDao 接口,已经做到和sql,mongo使用同一接口调用,在这里不单独表述.
1. 官网下载zip版的solr安装包(solr-7.1.0.zip),并解压。
2. 打开命令行,执行如下命令:
PS D:\JAVA\db\solr-7.1.0> ./bin/solr start -e cloud
找到 solr-7.1.0/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.1.0.jar
复制到 solr-7.1.0\server\solr-webapp\webapp\WEB-INF\lib 中
PS D:\JAVA\db\solr-7.1.0> ./bin/solr stop -all
PS D:\JAVA\db\solr-7.1.0> ./bin/solr start -all
PS D:\JAVA\db\solr-7.1.0> ./bin/solr create -c sybn_core
PS D:\JAVA\db\solr-7.1.0> java -Dc=sybn_core -jar ./example/exampledocs/post.jar ./example/exampledocs/solr.xml ./example/exampledocs/monitor.xml
8. 验证分词
打开 http://127.0.0.1:8983/solr/
选择 sybn_core
点击 Analyse
Field Value (Index) 输入:好好学习天天向上
Analyse Fieldname / FieldType: 选择:text_ik
点击 Analyse Values
正确结果: HMMCT | text | 好好 | 学习 | 天天 | 向上
打开 http://127.0.0.1:8983/solr/
选择 sybn_core
点击 Query
修改或者不修改产需你条件都行
点击 Execute Query
正确结果:
{
"responseHeader":{
"status":0,
"QTime":21,
"params":{
"q":"*:*",
"_":"1513570230549"}},
"response":{"numFound":2,"start":0,"docs":[
。。。以下省略。。。
10. 测试在线导入数据
打开一个已有的core,将上面的"docs":[...]之中,中括号之间的内容复制到记事本.
使用正则语句 ,[\r\n]+ "_version_":[0-9]* 删除数据中的_version_字段
在需要导入的core中点击Documents,黏贴数据后,点击Submit Document
测试数据是否成功导入.
11. 开始填坑
然后就是填坑了, solr有很多坑.