2015年1月6日 星期二

【Apache Solr】Getting started: Installation & A single node example

Apache Solr 是一個全文搜索的平台,能夠將多種格式的資料儲存在它的資料庫內,並提供快速的資料檢索

Solr 在 2010 年的時候與 Apache 的另外一個專案 Lucene 合併,Lucene 其實就是整個資料搜尋的核心,

它提供了所有的資料搜尋與檢索的函式庫。

而 Solr 則是利用了 Lucene 的搜尋功能並採用 Servlet container(預設是 Jetty) 來提供 REST,

及其他 API 的方式讓開發者能夠輕易的對資料進行查詢。

--------------------------------------------------------------------

接下來以 Apache Solr 4.10.2 的版本來安裝並介紹

前提是你的作業系統內必須安裝 Java 7,如果你是 Java 6 的話可以考慮更新到 Java 7,

或是選擇 Solr 版本 4.7.0 以下的也是可以。

首先先到 http://archive.apache.org/dist/lucene/solr/4.10.2/ 下載合適你作業系統的壓縮檔

以下以 Linux ubuntu 為例

$ cd ~                                                                  
$ wget http://archive.apache.org/dist/lucene/solr/4.10.2/solr-4.10.2.tgz
$ ......                                                                

$ tar -zxf solr-4.10.2.tgz                                              


完成之後會看到一個 solr-4.10.2 的資料夾,進入該目錄之後內容如下圖
























在該開始接觸 Solr 的人最重要的就是把 example 目錄下的結構和幾個檔案搞懂

在 example 目錄下有幾個比較重要的檔案和目錄

1. scripts 目錄:目錄內有一些 shell script 可以讓你操作 Zookeeper 和 MapReduce

2. start.jar 檔:用來啟動 Solr 服務的 Jar 檔

3. solr 目錄:它是你的 Solr home 的目錄,你建立的 Core 以及索引資料都在內,如下圖:
























在 solr 目錄下有一個 collection1 的目錄,他就是一個 Solr 提供的一個 Core 範例,

所以你如果有多個 core 的話,你就會在 solr 目錄下看到那些 core 名稱的目錄

在每個 core 目錄底下,需要注意的就是 conf 以及 data 目錄 

1. conf 目錄內有著兩個最重要的設定檔 schema.xml 以及 solrconfig.xml,前者描述了 core 的資料欄位和資料型態,後者則是定義一些關於 core 的設定

2. data 目錄顧名思義就是存放資料的地方


Solr 提供了兩種模式,一種是單點的另外一種則是分佈式的,以下依序介紹如何配置

單點(Single node)

單點顧名思義就是只有一台 Solr 的伺服器再提供所有的服務,這在正式的 Production 環境上是不太可能這樣配置的


  • 如何啟動
    $ cd solr-4.10.2/example
    $ java -jar start.jar   
    完成之後打開瀏覽器並輸入網址 http://localhost:8983/solr

    你就會看到一個 solr 的管理頁面,就代表成功了
  
    

  • 如何建立 core
    cd solr-4.10.2/example/solr                
    $ cp -r collection1/ mycollection            
    $ cd mycollection                            
    $ vi core.properties >> 改成name=mycollection 
    $ rm -r data/                                
    重新啟動 solr 之後你就會在 http://localhost:8983/solr 看到 mycollection
    
    當然你也可以再重啟之前適度的修改 schema.xml 來符合你的欄位設計



分佈式(Cloud)

叢集的效果就很像 Hadoop/HDFS 的樣子,資料是分佈式儲存,並透過 Zookeeper 來作協同管理,一個節點(Node)失效並不會造成資料遺失等問題,在 Solr 文件中都稱為 "SolrCloud"

如何安裝與配置,因為篇幅稍多,所以留在下一篇再介紹

【Apache Solr】Getting started:Solr Cloud configuration and example

沒有留言:

張貼留言