Apache Solr入門教程(初學者之旅)

Apache Solr入門教程(初學者之旅)

作者 | 胡海超的博客
來源 | https://blog.csdn.net/u011936655/article/details/51960005

寫在前面:本文涉及solr入門的各方面,請逐行閱讀,相信能幫助你對solr有個清晰全面的瞭解並能簡單實用。
在Apache Solr初學者教程的這個例子中,我們將討論有關如何安裝最新版本的Apache Solr,並告訴你如何配置它。此外,我們將告訴你如何進行使用solr的樣本數據文件索引。Apache Solr支持不同格式,包括各種數據庫,PDF文件,XML文件,CSV文件等等。在這個例子中,我們將研究如何從一個CSV文件索引數據。
首選這個例子的環境是Windows。開始Solr安裝之前,確保你已經安裝了JDK和正確配置JAVA_HOME。

1.為什麼選擇Apache Solr

Apache Solr是一個功能強大的搜索服務器,它支持REST風格API。Solr是基於Lucene的,Lucene 支持強大的匹配能力,如短語,通配符,連接,分組和更多不同的數據類型。它使用 Apache Zookeeper特別針對高流量進行優化。Apache Solr提供各式各樣的功能,我們列出了部分最主要的功能。

2.安裝Apache Solr

要首先讓從以下位置下載最新版本的Apache Solr:http://lucene.apache.org/solr/downloads.html
在撰寫本文時,可用的穩定版本是5.0.0。Apache Solr經歷了從4.XX到5.0.0各種變化了,所以如果你有不同版本的Solr,你需要下載5.xx版本並以此為模板。


一旦Solr的zip文件下載將它解壓縮到一個文件夾。提取的文件夾看起來像下面。

Apache Solr入門教程(初學者之旅)

Solr的文件夾
bin文件夾中包含用來啟動和停止服務器的腳本。example 文件夾包含幾個示例文件。我們將使用其中的一種,以說明Solr如何索引數據。server 文件夾包含logs 文件夾,所有的Solr的日誌都寫入該文件夾。這將有助於索引過程來檢查任何錯誤日誌。在sever文件夾下的Solr文件夾包含不同的集合或核心(core/collection)。對於各集合或核心的配置和數據都存儲在相應的集合或核心文件夾。
Apache Solr帶有一個內置的Jetty服務器。但在我們開始之前,我們必須驗證JAVA_HOME已經配置。
我們可以使用命令行腳本啟動服務器。讓我們去solr的bin目錄,從命令提示符輸入出以下命令

這將啟動下的默認端口8983 Solr的服務器。
現在,我們可以在瀏覽器中打開以下網址和驗證,我們的Solr的實例正在運行。solr的管理工具的細節超出了示例的範圍。
http://localhost:8983/solr/

Apache Solr入門教程(初學者之旅)

Solr管理控制檯

3.配置Apache Solr

在本節中,我們將告訴你如何配置的核心/集合作為Solr實例,以及如何定義的字段。Apache Solr附帶稱為無模式模式的選項。這個選項允許用戶構建有效的架構,而無需手動編輯模式文件。但是,在這個例子中,我們將使用架構配置理解Solr的內部。

3.1建立核心(core)

當Solr的服務器在獨立模式下啟動的配置稱為核心,當它在SolrCloud模式啟動的配置稱為集合。在這個例子中,我們將有關獨立服務器和核心討論。我們將在以後再討論SolrCloud。首先,我們需要創建一個核心的索引數據。Solr的創建命令有以下選項:

在這個例子中,我們將使用的核心名稱和配置目錄-d參數-c參數。對於所有其它參數我們使用默認設置。

現在在命令窗口瀏覽 solr-5.0.0bin文件夾,併發出以下命令。

我們可以看到在命令窗口中下面的輸出。
Creating new core 'jcg' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=jcg&instanceDir=jcg{
"responseHeader":{
"status":0,


"QTime":663},
"core":"jcg"}

現在我們導航到以下網址,我們可以看到JCG核心被填充在核心選擇器上。還可以看到核心的統計信息。
http://localhost:8983/Solr

Apache Solr入門教程(初學者之旅)

Solr的核心JCG

3.2修改Schema.xml文件

我們需要修改schema.xml中文件的文件夾下,serversolrjcgconf包含的字段。我們將使用隨Solr的安裝索引附帶的示例文件“books.csv”之一。該文件所在的文件夾下 的solr-5.0.0exampleexampledocs


現在,我們定位到該文件夾 serversolr目錄。你會看到一個名為JCG的文件夾被創建。子文件夾conf和data分別擁有核心的配置和索引的數據。
現在編輯serversolrjcgconfserversolrjcgconfschema.xml文件,設置唯一元素後添加以下內容。
schema.xml

我們已經設置了屬性索引為true。這指定字段用於索引和記錄可以使用索引進行檢索。該值設置為false將只存儲領域,但不能進行查詢。
另外請注意另一個屬性stored並將其設置為true。這指定字段被存儲,並且可以在輸出被返回。將此字段設置為false使字段唯一索引,並且不能在輸出進行檢索。
我們已經分配給存在於此處的“books.csv”文件中的字段的類型。在CSV文件“ID”第一場由索引Schema.xml文件的唯一鍵自動元素的照顧。如果你注意,我們已經略過字段seriest,sequencei和genre_s未做任何條目。但是,當我們執行索引時,所有這些字段都被索引且沒有任何問題。如果你想知道這種情況需要在Schema.xml文件的dynamicField部分一探究竟。
schema.xml

既然我們已經修改了配置,我們必須停止和啟動服務器。要做到這一點,我們需要通過命令行發出從bin目錄下面的命令。

服務器將停止現在。現在啟動服務器問題從bin目錄中通過命令行運行以下命令。

4.索引數據

Apache Solr帶有一個叫做SimplePostTool獨立的Java程序。這個程序被打包成JAR,在安裝目錄下 exampleexampledocs可看到。
現在,我們在命令行定位到exampleexampledocs文件夾,然後鍵入以下命令。你會看到一堆選項,使用的工具。

在一般的使用格式如下用途:
Usage: java [SystemProperties] -jar post.jar [-h|-] [
[ ...]]
正如我們前面所說,我們將索引“books.csv”文件中的數據。我們將導航到solr-5.0.0exampleexampledocs在命令提示符併發出以下命令。
java -Dtype=text/csv -Durl=http://localhost:8983/solr/jcg/update -jar post.jar books.csv
這裡使用的SystemProperties是:

-dtype - 數據文件的類型。
-Durl - JCG核心的地址。

文件“books.csv”現在將索引和命令提示符將顯示以下輸出。

SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/solr/jcg/update using content-type text/csv...
POSTing file books.csv to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/jcg/update...Time spent: 0:00:00.647

現在我們導航到以下網址並選擇核心JCG。
http://localhost:8983/solr

Apache Solr入門教程(初學者之旅)

Solr的JCG核心數據
就拿在統計部分仔細一看,該篇文檔參數將顯示索引的行數。

5.訪問索引的文檔

Apache Solr提供了一種基於REST API來訪問的數據,並還提供了不同的參數,以檢索數據。我們將向您展示一些基於場景的查詢。

5.1按名稱搜索

我們將用它的名字檢索書的細節。要做到這一點,我們將使用下面的語法。URL中的參數“Q”是查詢事件。
打開瀏覽器下列URL。
http://localhost:8983/solr/jcg/select?q=name:"A Clash of Kings"
輸出將在下面,如圖所示。

Apache Solr入門教程(初學者之旅)

按名稱SOLR

5.2首字母搜索

現在我們將告訴你如何搜索記錄,如果我們只知道起始字母或單詞,不記得完整的標題。我們可以用下面的查詢檢索結果。
http://localhost:8983/solr/jcg/select?q=name:"A"
輸出將列出所有的書籍字母A盯著

Apache Solr入門教程(初學者之旅)

Solr的首字母

5.3搜索使用通配符

Solr支持通配符搜索。我們將下面的展示如何檢索所有書名包含“of”的書。
http://localhost:8983/solr/jcg/select?q=name:"*of"

Apache Solr入門教程(初學者之旅)

Solr的通配符搜索

5.4搜索使用的條件

Solr的支持條件的搜索。我們可以設置條件,我們的查詢提供了“FQ”參數。在下面我們將告訴你如何查詢價格低於¥6的書。
http://localhost:8983/solr/jcg/select?q=*&fq=price:[0 TO 6]
輸出將只列出低於$ 6的書籍。

Apache Solr入門教程(初學者之旅)

Solr搜索條件

6. Solr的客戶端API的

有不同的客戶端API的可用來連接到Solr的服務器。我們列出了一些廣泛使用的Solr客戶端API的。

此外,Solr還提供了JavaScript可以直接使用的基於REST的API。

ps:由於篇幅過長,部分段落使用翻譯軟件翻譯,請諒解,但均已手動修改,不影響內容學習,有時間的同學也可閱讀英文版。


參考地址:https://examples.javacodegeeks.com/enterprise-java/apache-solr/apache-solr-tutorial-beginners/

如果文章對您有幫助,請記得點贊關注喲~

歡迎大家關注我的公眾號 情繫IT,每日推送技術文章供大家學習參考。


分享到:


相關文章: