solr 安裝單機

安裝

先安裝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/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章