本文章为新手摸索solr并根据网上文档总结出的产物,看出漏洞的大神请在评论区留下您的宝贵意见,谢谢~
其实在solr中创建core和添加ik分词器在网上一搜就能搜到很多案例,但是我发现网上许多步骤并不是很完整,对于我这种小白来说,我花了一天多的时间才成功添加了core和ik分词器。说来也是惭愧啊,花了这么长时间,还好最终搞好了,不然我都有点崩溃了。下面我也就不废话了,说下我的步骤。
我使用的环境是jdk7+solr-4.10.2+IKAnalyzer-2012-4x+apache-tomcat-7.0.65 。 这些都是我在网上下载的,地址我就贴一下吧。solr5以上的版本好像是可以不用依靠tomcat启动,可以使用内置的jetty启动,具体的这位仁兄的文章里有:https://blog.csdn.net/qq_16500375/article/details/52149865
solr官方文档:http://wiki.apache.org/solr/DataImportHandler
下载solr:http://lucene.apache.org/solr/ or http://pan.baidu.com/s/1slImI89
下载ik分词器的jar包:http://pan.baidu.com/s/1eScBIJC
一、在tomcat中部署solr服务
1、下载tomcat、 solr,解压,放在任意目录下
2、 将solr-4.10.2\example\webapps 目录下的solr.war copy到apache-tomcat-7.0.65\webapps 目录下。
3、在任意盘符下新建文件夹solrhome ,将solr-4.10.2\example\solr 下的文件都拷贝到solrhome 下(除了collection1和solr.xml,其余的文件可以删除,暂时用不到)。
4、在apache-tomcat-7.0.65\webapps 下面新建图片中的目录,在web.xml中添加
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
5、在apache-tomcat-7.0.65\webapps\solr\WEB-INF下新建一个classes文件夹,并把solr-4.10.2\example\resources下的log4j.properties日志文件复制到这classes文件夹下。
6、启动tomcat和solr,访问:localhost:8080/solr
注:因为我有很多个tomcat,刚开始时我随便用个tomcat按照上述步骤做,但是一直访问不了,最后才发现原来我的环境变量里指定了一个tomcat,但我不是用这个tomcat做的,所有出现了问题。
二、在solr中添加core
1、部署完之后solr默认是有一个core的,也就是collection1,但是我想新加一个core该怎么做呢?很容易,直接将原来的collection1复制一份改个名字放在和collection1同级的目录下,我给的名字是collection2,删除collection2下data目录下的文件(相关索引文件会在创建索引时自动生成),一定要删除core.properties(该文件在创建core时会自动生成,保留会容易导致core创建不成功)。
2、在页面中点击add core,可以创建成功
name:新建的core的名称
instanceDir:就是你的core根目录,solr就是你的SOLR_HOME,你可以在SOLR_HOME下创建多个core目录,
dataDir:表示你core的数据目录,当前core的索引数据会存放在dataDir下的data\index目录下,上述所有文件夹需要你手动创建(除了data\index这里的index目录,solr会自动创建),
注:core.properties不能copy过去,是在创建的时候自动生成,如果copy此文件,会报错误:as another core is already defined there
三、在solr中配置IK分词器
1、将下载下来的jar包复制到apache-tomcat-7.0.65\\webapps\solr\WEB-INF\lib中和solr-4.10.2\example\solr-webapp\webapp\WEB-INF\lib中(第一次我没在这里放jar,报错了)
2、在solrhome\simple\conf下的schema.xml文件中添加fieldType:
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
4、我们再次搜索的时候就可以看到分词了