版权声明: https://blog.csdn.net/yup1212/article/details/82221123
安装
先安装tomcat
复制目录需要加-r
[root@localhost ~]# mkdir /usr/local/solr
[root@localhost ~]# cp -r /root/solr/apache-tomcat-7.0.47 /usr/local/solr/tomcat
复制solr的war包到tomcat下
[root@localhost ~]# cp /root/solr/solr-4.10.3/dist/solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
通过启动tomcat解压war包
[root@localhost ~]# /usr/local/solr/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/solr/tomcat
Using CATALINA_HOME: /usr/local/solr/tomcat
Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
Using JRE_HOME: /root/java/jdk1.7.0_80
Using CLASSPATH: /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar
然后关闭,要先关闭再删除solr.war,不然solr也会被删,solr.war不删也行
[root@localhost ~]# /usr/local/solr/tomcat/bin/shutdown.sh
Using CATALINA_BASE: /usr/local/solr/tomcat
Using CATALINA_HOME: /usr/local/solr/tomcat
Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
Using JRE_HOME: /root/java/jdk1.7.0_80
Using CLASSPATH: /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar
将日志相关jar包复制到工程里
[root@localhost dist]# cd /root/solr/solr-4.10.3/example/lib/ext
[root@localhost ext]# ll
total 552
-rw-r--r--. 1 root root 16515 Feb 5 2014 jcl-over-slf4j-1.7.6.jar
-rw-r--r--. 1 root root 4959 Feb 5 2014 jul-to-slf4j-1.7.6.jar
-rw-r--r--. 1 root root 489884 May 26 2012 log4j-1.2.17.jar
-rw-r--r--. 1 root root 28688 Feb 5 2014 slf4j-api-1.7.6.jar
-rw-r--r--. 1 root root 8869 Feb 5 2014 slf4j-log4j12-1.7.6.jar
[root@localhost ~]# cp /root/solr/solr-4.10.3/example/lib/ext/* /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
部署solrhome
[root@localhost ~]# cp -r /root/solr/solr-4.10.3/example/solr /usr/local/solr/solrhome
使solr服务器知道solrhome目录位置:
修改tomcat方式:
修改sorl的web.xml方式:
[root@localhost ~]# vim /usr/local/solr/tomcat/webapps/solr/WEB-INF/web.xml
<!--
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
-->
修改为
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
启动tomcat
[root@localhost ~]# /usr/local/solr/tomcat/bin/startup.sh
判断是否成功
(查看控制台,我的控制台打不开不演示了)
tail -f logs/catalina.out
或者打开网页
http://192.168.25.129:8080/solr/
安装中文分词器 IK Analyzer 2012FF_hf1
1 把IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下
[root@localhost ~]# cp /root/solr/IK\ Analyzer\ 2012FF_hf1/IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib
如果这个jar忘加了,打开http://192.168.25.129:8080/solr/会如下错误:
HTTP Status 500 - {msg=SolrCore 'collection1' is not available due to init failure: Could not load conf for core collection1: Plugin init failure for [schema.xml] fieldType "text_ik": Cannot load analyzer: org.wltea.analyzer.lucene.IKAnalyzer. Schema file is /usr/local/solr/solrhome/collection1/conf/schema.xml,trace=org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: Could not load conf for core collection1: Plugin init failure for [schema.xml] fieldType "text_ik": Cannot load analyzer: org.wltea.analyzer.lucene.IKAnalyzer. Schema file is /usr/local/solr/solrhome/collection1/conf/schema.xml at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:745) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:307) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.solr.common.SolrException: Could not load conf for core collection1: Plugin init failure for [schema.xml] fieldType "text_ik": Cannot load analyzer: org.wltea.analyzer.lucene.IKAnalyzer. Schema file is /usr/local/solr/solrhome/collection1/conf/schema.xml at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:66) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:489) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:255) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:249) at java.util.concurrent.FutureTask.run(FutureTask.java:262) ... 3 more Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] fieldType "text_ik": Cannot load analyzer: org.wltea.analyzer.lucene.IKAnalyzer. Schema file is /usr/local/solr/solrhome/collection1/conf/schema.xml at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:595) at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:166) at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55) at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69) at org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:90) at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:62) ... 7 more Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] fieldType "text_ik": Cannot load analyzer: org.wltea.analyzer.lucene.IKAnalyzer at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:177) at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:486) ... 12 more Caused by: org.apache.solr.common.SolrException: Cannot load analyzer: org.wltea.analyzer.lucene.IKAnalyzer at org.apache.solr.schema.FieldTypePluginLoader.readAnalyzer(FieldTypePluginLoader.java:288) at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:95) at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:43) at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:151) ... 13 more Caused by: org.apache.solr.common.SolrException: Error loading class 'org.wltea.analyzer.lucene.IKAnalyzer' at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:490) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:421) at org.apache.solr.schema.FieldTypePluginLoader.readAnalyzer(FieldTypePluginLoader.java:263) ... 16 more Caused by: java.lang.ClassNotFoundException: org.wltea.analyzer.lucene.IKAnalyzer at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:278) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:474) ... 18 more ,code=500}
2 把扩展词典、配置文件三个文件到web-inf/classes下
[root@localhost ~]# mkdir /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
[root@localhost solr]# cd /root/solr/IK\ Analyzer\ 2012FF_hf1/
[root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
定义solrhome指定使用分词器
[root@localhost ~]# vim /usr/local/solr/solrhome/collection1/conf/schema.xml
在最外层的 <schema>里</schema>添加如下内容
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
设置业务系统Field
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
查看是否成功:
重启tomcat
/usr/local/solr/tomcat/bin/shutdown.sh
/usr/local/solr/tomcat/bin/startup.sh
测试打开http://192.168.25.129:8080/solr/