Solr我還是個菜鳥,寫這一些文章只是記錄一下最近一段時間學習Solr的心得。
Solr是什麼?
最近我學Solr的時候,一直看到一句話,Solr 是一個可供企業使用的、基於 Lucene 的開箱即用的搜索服務器。當時想了很久沒看懂這句話是什麼意思,什麼是搜索服務器?當接觸的深了才發現,所謂的搜索服務器,就是能夠在服務器(Tomcat,Jetty)中運行的搜索程序的一個工程。
Solr能做什麼? 了解過Lucene的人都知道,Lucene在做兩件事情,索引管理與搜索,Solr同樣也不例外,做的也是這兩件事情,只不過使之更加簡單化。
如果對Lucene還不太了解,推薦看一下覺先的博客:http://www.cnblogs.com/forfuture1978/category/300665.html,這篇博客對於我剛剛接觸全文檢索的時候幫助很大,另外推薦一本書,英文版Lucene In Action,中文版Lucene實戰。
下面,切入正題,既然Solr是一個搜索服務器,我們當然需要它能夠在我們的Eclipse裡進行管理,我就寫一下我的一些心得吧。
在Eclipse中運行Solr 1.下載solr完整包,我用的是Solr 3.6.1;
2.在Eclipse中新建一個Dynamic Web project項目,我的命名是solr,大家也可以這樣,如果不一樣,在你訪問的時候注意一下就好了。
3.刪除新建項目中的WebContent下的所有內容,將下載的Solr完整包中的dist目錄下的apache-solr-3.6.1.war解壓,將裡面的所有內容復制到WebContent下,復制完成之後會有紅叉,別管了,就當沒看見。
4.指定solrHome,solrHome是存放solr核心配置文件與索引的地方。
打開WEB-INF/web.xml文件,添加以下節點:
代碼如下:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
其中env-entry-name必須是solr/home,env-entry-value節點是你要放置solr配置文件的地方。
5.添加solr配置文件 這裡有兩種方法,自己建立或者是拷貝下載完整包中的核心配置文件。
第一種方法:拷貝,進入下載包中的example/mutiCore目錄下,可以看到有core1,core2,將此文件夾以及下面的solr.xml文件拷貝至solrHome。
第二種方法:(1).新建,進入solrHome,新建solr.xml文件,配置如下:
代碼如下:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
<cores adminPath="/admin/cores">
<core name="merchant" instanceDir="merchant" />
</cores>
</solr>
其中adminPath的文件如代碼所示,最好不要更改,core中name隨意,最好是有一定的實際意義的,instanceDir,這裡指定了該core的目錄,這裡配置了merchant,也就意味著是solrHome下的merchant目錄。
在這裡解釋一下多核心配置,此處示例我只存放了一個core,因為我們的產品只需要對著一個merchant進行全文檢索。如果有需要,比如說還需對coupon等文件檢索的話,就需要配置多核。example/muticore文件夾下給出了多核的示例,大家可以參考一下。
(2).新建merchant目錄(與配置中的instanceDir一致),然後在merchant下新建conf目錄,在conf裡新建兩個xml文件,分別是schema.xml,solrconfig.xml,這兩個xml的配置會在下篇博客中詳細講述,如果不知道如何配置,拷貝example/muticore/core1/conf裡面的兩個文件進來即可。
6.在Eclipse中啟動solr 在servers窗口中new一個server,然後將剛剛新建的項目add進去;
修改端口,雙擊剛剛新建的服務器,在port裡面修改HTTP/1.1的端口為8983,這裡可以自定義,最好不要和你的其他項目重復。然後保存;
啟動服務器。
7.在浏覽器中打開solr管理面板 打開以下地址,http://localhost:8983/solr/,然後你就可以看到Admin merchant選項了,點擊進入,就是剛剛配置的merchant core的管理面板。