摘要:將之更改為如下形式解釋一下,這里的根目錄是你自身的目錄。分析文件,發現一段配置但是,自己太菜,分析不出原因。
前言
1、私信請在SegmentFault 傳送點 https://segmentfault.com/a/1190000010959342,有問必答
2、轉發請注明出處 http://3dot141.cn/blogs/29869.html,也給小可愛一點出名的機會嘛
tomcat 9
JDK 1.8
solr 6.6
官網下載 solr 6.6 然后解壓到文件夾。
將 server/server-webapp 下的 webapp 復制到 tomcat 的 webapp 包下
并改名為 solr?
?打開 在?tomcat 下的 solr?項目, solr ( webapp 改名后的solr )/WEB-INF/web.xml 文件,在開頭找到類似代碼,取消注釋并修改,如下
solr/home D:/Programme/0-Java/J_workspace/solr_home java.lang.String
注:此處是我的 solrhome 的文件位置 , 你可以自行設置
將 server/lib 下的 metrics-.jar 包 與 dist 下的 solr-dataimporthandler- .jar 包 復制到你在tomcat / webapp 下的 solr /WEB-INF/ lib 目錄中。
將 server/resources 目錄下的 log4j.properties 文件 拷貝到 tomcat/webapp/solr/WEB-INF/classes 目錄下,沒有,就自己新建一個。
自己根據上文 web.xml 中配置的 solr/home 信息,建立 solr_home 文件夾 。并將 server / solr ?下的文件全部 拷貝到 solr_home 文件夾下。
在 solr_home 目錄下建立一個 文件夾,new_core 作為 你 的solr_core。并將 上圖中 configsets / sample_techproducts_configs 目錄下的 conf 文件夾 拷貝到 new_core 文件夾下。
配置 lib 標簽。
將 solr 6.6 壓縮包內的 contrib 與 dist 文件夾 復制到 solr_home 文件夾下。
打開 new_core/conf/solrconfig.xml?文件,從中找到如下代碼形式。
解釋一下,這里的根目錄是 你自身的 solr_core 目錄。對我來說 ,就是 new_core 所在的目錄。
所以?
../ == solr_home 目錄
成果展示
打開http://localhost:8080/solr/index.html 會出現如下畫面
根據這位博主的文章http://www.jianshu.com/p/dd7a...
總結如下:
1.啟動tomcat時如果報下面的錯誤:
嚴重: Exception starting filter SolrRequestFilter java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSetat java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) at java.lang.Class.getConstructor0(Class.java:3075)at java.lang.Class.newInstance(Class.java:412) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4700) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5340) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)Caused by: java.lang.ClassNotFoundException:com.codahale.metrics.MetricSet at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) ... 20 more
請把solr-6.4.1/server/lib下的metrics-core-3.1.2.jar,metrics-ganglia-3.1.2.jar,metrics-graphite-3.1.2.jar,metrics-jetty9-3.1.2.jar,metrics-jvm-3.1.2.jar這幾個jar包放到tomcat下的solr項目的WEB-INF/lib目錄下。
2.訪問http://localhost:8080/solr/index.html時如果報下面的錯誤:
HTTP Status 403 - Access to the requested resource has been denied
把tomcat下的solr項目的web.xml文件中
Disable TRACE / TRACE Enable everything but TRACE / TRACE
這段注釋掉。這段配置限制了對solr資源的訪問,注釋掉就可以訪問了。
3.java.lang.NoSuchMethodError:
解決:solr5.5以上版本在tomcat8下運行
由于solr5.5.0和solr5.5.1 版本部署在tomcat7下的時候,會報Java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()Z的錯誤,這個是serverlet3.1才有的方法。
4.javax.servlet.ServletInputStream.isFinished
解決:solr5版本以上的部署最好使用JDK1.8
solr5版本以上的部署最好使用JDK1.8,雖然官網沒有明確表示solr5必須是要使用JDK1.8,但是其中一部分功能鎖需求的JDK版本在JDK1.7以下是沒有的
比如:Java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()Z
我是在全量索引的時候發生的此異常提示:找不到ServletInputStream類下面的isFinished()方法,那么現在我們找到該類ServletInputStream
如果在這個類下面沒有isFinished()方法,那就是JAR包問題,這個類所在的jar包是servlet-api.jar
5.待解決:
web.xml 文件中?的
正常部署后,直接訪問 localhost:8080/solr 應該就可以使用,但是,會出現不能加載 UI 的說明。
只有訪問 localhost:8080/solr/index.html 才可以正常加載。
分析web.xml 文件,發現一段 servlet 配置
LoadAdminUI org.apache.solr.servlet.LoadAdminUiServlet LoadAdminUI /index.html
但是,自己太菜,分析不出原因。所以還需要,之后的學習中多注意。
四、與中文分詞器的適配 1.smart-cn從 solr-6.6.0/contrib/analysis-extras/lucene-libs 下拷貝 lucene-analyzers-smartcn-6.6.0 到 apache-tomcat-9.0.0.M20/webapps/solr/WEB-INF/lib 目錄下。
打開 solrhomenew_coreconf 下的managed-scheme 文檔
加入以下內容
或者可以使用TokenizerFactory
2.IKAnalyzer
這里有最新適配 solr6.6 的 IKAnalyzer,這里是 適配攻略
進入可下載. 下載地址
下載后,將IKAnalyzer.jar 包 拷貝到 apache-tomcat-9.0.0.M20/webapps/solr/WEB-INF/lib 目錄下
打開 solrhomenew_coreconf 下的managed-scheme 文檔
加入以下內容
或者可以使用TokenizerFactory
成果展示
結語以上就是對 solr 進行的一些簡單操作,下一篇文章將會介紹如何將 solr 與 java 、 mysql 數據庫結合起來,使用。
喜歡的話可以點一下收藏,與關注哦~,碼字不易。
謝謝~~~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67488.html
摘要:傳送門搜索為將入門現在介紹如何與數據庫整合。指定域的名稱指定域的類型指定使用的分詞器。結語因為時間有限,先介紹到這里。等下次有時間,將與的整合,以及一起進行總結。我的個人博客謝謝。 前言 上一篇已經介紹了 solr 的基本操作。傳送門: 搜索為將 -- solr 入門現在介紹如何 與數據庫 整合。 solr managed-scheme 文檔 這個文檔位于 solrhomenew_co...
摘要:系列文章系列一快速入門系列二使用及索引文檔的基本操作系列三查詢及高亮是什么在維基百科的定義是一套用于全文檢索和搜索的開放源代碼程序庫,由軟件基金會支持和提供。全面準確和快速是衡量全文檢索系統的關鍵指標。結果列表有相關度排序。 系列文章: Lucene系列(一)快速入門 Lucene系列(二)luke使用及索引文檔的基本操作 Lucene系列(三)查詢及高亮 Lucene是什么? Luc...
摘要:代碼如下值默認為而在新版中,方法被廢除根據的官方文檔中的說法中文翻譯后索引時權值被廢除,請將索引時打分因素添加入域中,然后在查詢時,使用功能性打分查詢語句,進行關聯查詢。 前言 學習的資料是 lucene 4.10 版本,比較沉舊,查閱最新的 lucene 版本 6.6 的官方文檔,整理出以下幾個使用中的不同。 從淺入深依次為 (注:不是根據版本先后) IndexWrit...
摘要:系列文章系列一快速入門系列二使用及索引文檔的基本操作系列三查詢及高亮入門簡介地址下載地址是一個用于搜索引擎的,方便開發和診斷的可視化工具。使用作為其最低級別的搜索引擎基礎。截止,上述代碼所用的包皆為最新。 系列文章: Lucene系列(一)快速入門 Lucene系列(二)luke使用及索引文檔的基本操作 Lucene系列(三)查詢及高亮 luke入門 簡介: github地址:http...
閱讀 2628·2021-11-23 09:51
閱讀 2418·2021-09-30 09:48
閱讀 2044·2021-09-22 15:24
閱讀 1009·2021-09-06 15:02
閱讀 3303·2021-08-17 10:14
閱讀 1934·2021-07-30 18:50
閱讀 1980·2019-08-30 15:53
閱讀 3168·2019-08-29 18:43