前言 前前後後接觸Solr有一個多月了,想趁著學習Solr順便把java拾起來。我分別用4.X和5.X版本在windows環境下用jetty的方式、tomcat部署的方式自己搭建了一把。其中從4.x到5.x和6.x的變化還是有的。搭建起來Solr後我分別用調用http介面的方式、SolrNet實現了 ...
前言
前前後後接觸Solr有一個多月了,想趁著學習Solr順便把java拾起來。我分別用4.X和5.X版本在windows環境下用jetty的方式、tomcat部署的方式自己搭建了一把。其中從4.x到5.x和6.x的變化還是有的。搭建起來Solr後我分別用調用http介面的方式、SolrNet實現了索引的增刪改查,在使用SolrNet開發時發現查詢時不時的還報錯,不知道是不是因為Solr的版本太高。 在學習Solr的過程中參考幾位師傅的博客,從搭建平臺、創建索引、搜索索引數據、中文分詞都瞭解了一些,後面會把這些都整理出來。 文章最後我會貼出鏈接。
Solr搭建工作
1、下載solr windows安裝包。這裡我用的是5.5.1。下載完成後解壓縮。 5.X版本中example包含幾個入門的非結構化文件:csv、json、xml。可通過post.jar命令導入以便如入門。部署的話則要用到server
2、安裝tomcat8。把solr-5.5.1/server/solr-webapp文件夾下的webapp目錄複製拷貝到Tomcat/webapps文件夾內並重命名webapp目錄名為solr。
3、把solr-5.5.1/server/lib/ext中的jar包複製到Tomcat/webapps/solr/WEB-INF/lib目錄中。
4、在任意盤符新建solr_home文件夾(我在D盤創建)。把solr-5.5.1/server/solr目錄複製到solr_home下。這個目錄也就是後面你創建索引實例Core需要用到的目錄。配置文件(schema.xml)和索引都保存在這裡。
5、把solr-5.5.1/server/resources下的log4j.properties複製到Tomcat/webapps/solr/WEB-INF/classes目錄內。如果classes不存在手動創建。
6、配置web.xml。打開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-value為你的solr_home地址。我的地址是d:/solr_home/solr。
OK。保存。順便重啟下tomcat。然後在瀏覽器輸入http://localhost:8080/solr/index.html。 剛開始我配置完後直接輸入http://localhost:8080/solr 回車提示404. 4.x部署這樣是能打開的,5.x必須輸入到index.html。 出現下圖則說明你的solr Admin UI搞定了。
創建Core
5.x沒有了預設的Core,需要自己配置。在d:/solr_home/solr創建Core目錄,我起名univeral並把d:/solr_home/solr/configsets目錄內的conf目錄複製進去並創建data文件夾,conf放配置文件,data放索引數據(index data)。打開Admin UI 左側有Core Admin。 把表單中的name和instanceDir輸入univeral。 然後點擊【Add Core】
小試牛刀之創建索引
在Admin UI中選擇左下方的Core Selector找到你剛纔創建的universal實例。點擊展開菜單。選擇documents。
註意:當你點擊【Submit Document】按鈕時會提示你Field title不存在,這是因為你的schema.xml沒配置這個欄位。在d:/solr_home/solr/univeral/conf下找到managed-schema(老版本是schema.xml),打開配置field欄位。
右側出現Status:success則說明索引創建成功.
小試牛刀之搜索
在Solr Admin UI 左側Core實例菜單中點擊Query。預設q=*:*查詢全部。 solr查詢使用的http get介面。包括欄位篩選、關鍵字查詢、高亮、facet(垂直分片查詢)都在get路徑里輸入參數。
總結
剛開始摸索Solr,有很多東西搞的還不是很清楚,後面我想基於.net和java把創建索引、搜索介面、中文分詞這塊都做一做。 下麵是我學習過程中參考的博客
http://martin3000.iteye.com/blog/1330106
http://www.cnblogs.com/zhangweizhong/p/5044858.html
http://blog.csdn.net/qing419925094/article/category/2357449