第一部分:搭建solr环境
环境准备
安装环境:win7
Solr下载:http://archive.apache.org/dist/lucene/solr/ 本例使用 solr-6.4.1
JDK 1.8.0_05
Tomcat下载:https://tomcat.apache.org/ 本例使用解压版的apache-tomcat-8.5.31
解压solr 6.4.1至桌面,目录结构如下

bin:Solr的脚本启动工具目录。
contrib:放关于solr的扩展。
dist:在这里能找到Solr的核心JAR包和扩展JAR包。当我们试图把Solr嵌入到某个应用程序的时候会用到核心JAR包。
distàsolrj-lib:包含构建基于Solr的客户端时会用到的JAR包。
distàtest-framework:包含测试Solr时候会用到的JAR包。
docs:该文件夹里面存放的是Solr文档,离线的静态HTML文件,还有API的描述。
example:包含Solr的简单示例。
licenses:各种许可和协。
server:在本地把Solr作为服务运行的必要文件都存放在这里
安装部署步骤如下:
a.将【solr-6.4.1\server\solr-webapp】下的webapp文件拷贝到E盘下的
【tomcat-8.5.31\webapps】目录下,并将webapp重命名为solr(可以重命名为取任意名称)。
b.将solr-6.4.1\server\lib\ext下的jar包复制到【solr-tomcat-8.5.31\webapps】solr项目下的WEB-INF\lib下。
c.将solr-6.4.1\dist下的solr-dataimporthandler开头的两个jar包复制到
【solr-tomcat-8.5.31\webapps】solr项目下的WEB-INF\lib目录下。
d.将solr-6.4.1\server\lib下的以metrics开头的5个jar包复制到
【solr-tomcat-8.5.31\webapps】solr项目下的WEB-INF\lib目录下。
e.将solr-6.4.1\server\resources下的log4j.properties配置文件复制到
【solr-tomcat-8.5.31\webapps】solr项目下的WEB-INF\classes目录下,如果没有classes则新建一个classes文件夹。
f.接下来创建core目录,在E:\solr-tomcat-8.5.31新建solrHome文件夹,然后将
solr-6.4.1\server\solr子文件或文件夹复制到solrHome目录下。
g.修改【solr-tomcat-8.5.31\webapps】solr项目下的WEB-INF\web.xml中的一段代码其中<env-entry>这组标签默认是注释掉的,放开注释,修改<env-entry-value>值为 E:\solr-tomcat-8.5.31\solrHome,注释掉<security-constraint>这组标签.
最后,打开dos命令窗口,进入到E:\solr-tomcat-8.5.31\bin目录下,执行startup.dat,然后打开浏览器http://localhost:8080/solr/index.html 就可以访问solr。
参考:https://www.cnblogs.com/xiao-zhang-blogs/p/7327814.html
参考:https://blog.youkuaiyun.com/qq_34283987/article/details/77655437
第二部分 创建索引和插入数据
建立索引:
a. 先在E:\solr-tomcat-8.5.31\solrHome中建立一个文件夹mySolr(见名知意,做查询时会用到)用于存放索引相关信息,然后将C:\Users\admin\Desktop\solr-6.4.1\example\example-DIH\solr\db下的conf文件夹拷贝到mySolr下。
b. 然后在solr后台管理界面Core Admin中添加add Core,name和instanceDir的值都是mySolr,点击add Core即可添加成功一个索引.
插入数据
1.用solr后台插入数据(以mySolr索引为例)
进入http://localhost:8080/solr/index.html#/mySolr/documents,document type选择json 或xml(常用的两种类型)。插入的数据有规定,当document type选择json,document(s)多行文本域中就可以进行手动插入数据。如{“id”:”change.me”,”title”:”change.me”},现举例插入{“id”:”1001”,”title”:”我是一名优秀的中国人”}。当document type选择xml,<doc><field name="id">change.me</field><field name="title">change.me</field></doc>,举例如<doc><field name="id">10002</field><field name="title">我是一名合格的中国人</field></doc>。注意这里的插入的数据规定在schema.xml(本solr版本在managed-schema.xml中)
注:1、solr.install.dir表示solrCore的位置,需要根据实际jar包的位置更改jar包引用路径。2、每两个点“..”代表退到上一级目录,所以退了两级目录,到了solr目录,因此上图表示的是在引用的jar包在solr目录下的contrib或者dist目录下。参考https://www.cnblogs.com/cenwei/p/6527081.html
参考:https://jingyan.baidu.com/article/3052f5a1e0eb6b97f21f865e.html
2.从xml文件中导入数据
把solr-6.4.1\exampledocs下的monitor.xml导入到自己建的solr索引中,打开cmd,进入solr\6.4.1\exampledocs下,执行java -Durl=http://localhost:8080/solr/mySolr/update -jar post.jar monitor.xml命令即可
3.从数据库中批量导入索引数据,我的solr搭建的目录结构。db和dist都是需要新建
修改几个地方
1.E:\solr-tomcat-8.5.31\solrHome\mySolr\conf目录下的solrconfig.xml
2.在solrConfig.xml同级目录下增加data-config.xml文件
3.solrConfig.xml同级目录下managed-schema文件下增加红色框标记的内容
参考:https://blog.youkuaiyun.com/xiejunjie1/article/details/73967810
参考:https://blog.youkuaiyun.com/wohaqiyi/article/details/78028731
第三部分 使用IKAnalyzer中文分词
Jar版本:ik-analyzer-solr-5.*.jar
a.将ik-analyzer-solr开头的两个.jar包拷贝至E:\solr-tomcat-8.5.31\webapps\solr\libs下
b.将IKAnalyzer.cfg.xml(配置文件,可以在这里配置停词表和扩展词库)ext.dic和stopword.dic三个配置文件拷贝到E:\solr-tomcat-8.5.31\webapps\solr\WEB-INF\classes目录下
c.在E:\solr-tomcat-8.5.31\solrHome\mySolr\conf目录下的managed-schema问件下配置filed-type(field-type必须唯一),然后就可以在field中引用该type。
d.在E:\solr-tomcat-8.5.31\solrHome\mySolr\conf目录下的solrconfig.xml加
参考:https://blog.youkuaiyun.com/linzhiqiang0316/article/details/51554217
jar版本:ik-analyzer-solr-6.*.jar
a.将IKAnalyzer.cfg.xml(配置文件,可以在这里配置停词表和扩展词库)ext.dic和stopword.dic三个配置文件拷贝到E:\solr-tomcat-8.5.31\webapps\solr\WEB-INF\classes目录下。
b.将IKAnalyzer2012_u6.jar 拷贝到E:\solr-tomcat-8.5.31\solrHome\dic目录下
c.在E:\solr-tomcat-8.5.31\solrHome\mySolr\conf目录下的managed-schema问件下配置filed-type(field-type必须唯一),然后就可以在field中引用该type。
d.在E:\solr-tomcat-8.5.31\solrHome\mySolr\conf目录下solrconfig.xml加
错误提示:
the JRE_HOME environment variable is not defined correctly This environment variableis needed to run this program.
描述:我明明java_HOME配置是正确的啊,cmd控制台和me都能正常运行,为什么不行呢?原因:以前版本的tomcat需要JDK,现在的tomcat只要有JRE就可以。去环境变量下配置JRE_HOME(干掉JAVA_HOME,以及classpath中的配置)
C:\Users\egrantUser\Desktop\solr-6.4.1\bin>solr.cmd start
ERROR: Java 1.8 or later is required to run Solr. Current Java version is: 1.7.0_79
描述:Jdk版本低了,需要换成jdk.1.8
tomcat启动的时候报错:
java.lang.UnsatisfiedLinkError: Can't load AMD 64-bit .dll on a IA 32-bit' platform
描述:从错误信息中大致知道跟系统32位还是64位有关,查阅资料发现是jdk与tomcat冲突了,tomcat是64位的,而jdk是32位的,所以报错。
至此,一个简单的solr环境就都搭建好了,如果还想建立多个索引,直接将mySolr复制,然后更改mySolr2下的core.properties中的name为mySolr2.以此类推。