Solr基础学习

第一部分:搭建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至桌面,目录结构如下

binSolr的脚本启动工具目录。

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\webappssolr项目下的WEB-INF\lib下。

c.solr-6.4.1\dist下的solr-dataimporthandler开头的两个jar包复制到

【solr-tomcat-8.5.31\webappssolr项目下的WEB-INF\lib目录下。

d.solr-6.4.1\server\lib下的以metrics开头的5jar包复制到

【solr-tomcat-8.5.31\webappssolr项目下的WEB-INF\lib目录下。

e.solr-6.4.1\server\resources下的log4j.properties配置文件复制到

【solr-tomcat-8.5.31\webappssolr项目下的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\webappssolr项目下的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.dicstopword.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.dicstopword.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位有关,查阅资料发现是jdktomcat冲突了,tomcat64位的,而jdk32位的,所以报错。

 

至此,一个简单的solr环境就都搭建好了,如果还想建立多个索引,直接将mySolr复制,然后更改mySolr2下的core.properties中的namemySolr2.以此类推。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值