日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Apache Solr入门教程

發(fā)布時(shí)間:2025/4/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache Solr入门教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:http://blog.csdn.net/u011936655/article/details/51960005

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

寫在前面:本文涉及solr入門的各方面,請(qǐng)逐行閱讀,相信能幫助你對(duì)solr有個(gè)清晰全面的了解并能簡(jiǎn)單實(shí)用。

在Apache Solr初學(xué)者教程的這個(gè)例子中,我們將討論有關(guān)如何安裝最新版本的Apache Solr,并告訴你如何配置它。此外,我們將告訴你如何進(jìn)行使用solr的樣本數(shù)據(jù)文件索引。Apache Solr支持不同格式,包括各種數(shù)據(jù)庫(kù),PDF文件,XML文件,CSV文件等等。在這個(gè)例子中,我們將研究如何從一個(gè)CSV文件索引數(shù)據(jù)。

首選這個(gè)例子的環(huán)境是Windows。開始Solr安裝之前,確保你已經(jīng)安裝了JDK和正確配置JAVA_HOME。

1.為什么選擇Apache Solr

Apache Solr是一個(gè)功能強(qiáng)大的搜索服務(wù)器,它支持REST風(fēng)格API。Solr是基于Lucene的,Lucene?支持強(qiáng)大的匹配能力,如短語(yǔ),通配符,連接,分組和更多不同的數(shù)據(jù)類型。它使用?Apache Zookeeper特別針對(duì)高流量進(jìn)行優(yōu)化。Apache Solr提供各式各樣的功能,我們列出了部分最主要的功能。

  • 先進(jìn)的全文搜索功能。
  • XML,JSON和HTTP - 基于開放接口標(biāo)準(zhǔn)。
  • 高度可擴(kuò)展和容錯(cuò)。
  • 同時(shí)支持模式和無模式配置。
  • 分頁(yè)搜索和過濾。
  • 支持像英語(yǔ),德語(yǔ),中國(guó),日本,法國(guó)和許多主要語(yǔ)言
  • 豐富的文檔分析。
  • 2.安裝Apache Solr

    要首先讓從以下位置下載最新版本的Apache Solr:

    http://lucene.apache.org/solr/downloads.html

    在撰寫本文時(shí),可用的穩(wěn)定版本是5.0.0。Apache Solr經(jīng)歷了從4.XX到5.0.0各種變化了,所以如果你有不同版本的Solr,你需要下載5.xx版本并以此為模板。

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

    ?

    Solr的文件夾

    bin文件夾中包含用來啟動(dòng)和停止服務(wù)器的腳本。example?文件夾包含幾個(gè)示例文件。我們將使用其中的一種,以說明Solr如何索引數(shù)據(jù)。server?文件夾包含logs?文件夾,所有的Solr的日志都寫入該文件夾。這將有助于索引過程來檢查任何錯(cuò)誤日志。在sever文件夾下的Solr文件夾包含不同的集合或核心(core/collection)。對(duì)于各集合或核心的配置和數(shù)據(jù)都存儲(chǔ)在相應(yīng)的集合或核心文件夾。

    Apache Solr帶有一個(gè)內(nèi)置的Jetty服務(wù)器。但在我們開始之前,我們必須驗(yàn)證JAVA_HOME已經(jīng)配置。

    我們可以使用命令行腳本啟動(dòng)服務(wù)器。讓我們?nèi)olr的bin目錄,從命令提示符輸入出以下命令

    solr start

    這將啟動(dòng)下的默認(rèn)端口8983 Solr的服務(wù)器。

    現(xiàn)在,我們可以在瀏覽器中打開以下網(wǎng)址和驗(yàn)證,我們的Solr的實(shí)例正在運(yùn)行。solr的管理工具的細(xì)節(jié)超出了示例的范圍。

    http://localhost:8983/Solr/

    ?

    Solr管理控制臺(tái)

    3.配置Apache Solr

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

    3.1建立核心(core)

    當(dāng)Solr的服務(wù)器在獨(dú)立模式下啟動(dòng)的配置稱為核心,當(dāng)它在SolrCloud模式啟動(dòng)的配置稱為集合。在這個(gè)例子中,我們將有關(guān)獨(dú)立服務(wù)器和核心討論。我們將在以后再討論SolrCloud。首先,我們需要?jiǎng)?chuàng)建一個(gè)核心的索引數(shù)據(jù)。Solr的創(chuàng)建命令有以下選項(xiàng):

  • -c <name>?-要?jiǎng)?chuàng)建的核心或集合的名稱(必需)。
  • -d <confdir>?-配置目錄,在SolrCloud模式非常有用。
  • -n <configName>?-配置名稱。這將默認(rèn)為核心或集合的名稱。
  • -p <port>?-本地Solr的實(shí)例的端口發(fā)送create命令;?默認(rèn)腳本試圖通過尋找運(yùn)行Solr的實(shí)例來檢測(cè)端口。
  • -s <shards>?-Number of shards to split a collection into, default is 1.
  • -rf <replicas>?-集合中的每個(gè)文件的份數(shù)。默認(rèn)值是1。
  • 在這個(gè)例子中,我們將使用的核心名稱和配置目錄-d參數(shù)-c參數(shù)。對(duì)于所有其它參數(shù)我們使用默認(rèn)設(shè)置。

    現(xiàn)在在命令窗口瀏覽 solr-5.0.0\bin文件夾,并發(fā)出以下命令。

    solr create -c jcg -d basic_configs

    我們可以看到在命令窗口中下面的輸出。

    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"}

    ?

    現(xiàn)在我們導(dǎo)航到以下網(wǎng)址,我們可以看到JCG核心被填充在核心選擇器上。還可以看到核心的統(tǒng)計(jì)信息。

    http://localhost:8983/Solr

    Solr的核心JCG

    3.2修改Schema.xml文件

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

    現(xiàn)在,我們定位到該文件夾??server\solr目錄。你會(huì)看到一個(gè)名為JCG的文件夾被創(chuàng)建。子文件夾conf和data分別擁有核心的配置和索引的數(shù)據(jù)。

    現(xiàn)在編輯\server\solr\jcg\conf\server\solr\jcg\conf\schema.xml文件,設(shè)置唯一元素后添加以下內(nèi)容。

    schema.xml

    [html] view plaincopy
  • <uniqueKey>id</uniqueKey>??
  • ??
  • <!--?Fields?added?for?books.csv?load-->??
  • ??
  • <field?name="cat"?type="text_general"?indexed="true"?stored="true"/>??
  • ??
  • <field?name="name"?type="text_general"?indexed="true"?stored="true"/>??
  • ??
  • <field?name="price"?type="tdouble"?indexed="true"?stored="true"/>??
  • ??
  • <field?name="inStock"?type="boolean"?indexed="true"?stored="true"/>??
  • ??
  • <field?name="author"?type="text_general"?indexed="true"?stored="true"/>??
  •   

    我們已經(jīng)設(shè)置了屬性索引為true。這指定字段用于索引和記錄可以使用索引進(jìn)行檢索。該值設(shè)置為false將只存儲(chǔ)領(lǐng)域,但不能進(jìn)行查詢。

    另外請(qǐng)注意另一個(gè)屬性stored并將其設(shè)置為true。這指定字段被存儲(chǔ),并且可以在輸出被返回。將此字段設(shè)置為假將使字段唯一索引,并且不能在輸出進(jìn)行檢索。

    我們已經(jīng)分配給存在于此處的“books.csv”文件中的字段的類型。在CSV文件“ID”第一場(chǎng)由索引Schema.xml文件的唯一鍵自動(dòng)元素的照顧。如果你注意,我們已經(jīng)略過字段series_t,sequence_i和genre_s未做任何條目。但是,當(dāng)我們執(zhí)行索引時(shí),所有這些字段都被索引且沒有任何問題。如果你想知道這種情況需要在Schema.xml文件的dynamicField部分一探究竟。

    schema.xml

    <dynamicField name="*_i" type="int" indexed="true" stored="true"/><dynamicField name="*_is" type="ints" indexed="true" stored="true"/><dynamicField name="*_s" type="string" indexed="true" stored="true" /><dynamicField name="*_ss" type="strings" indexed="true" stored="true"/><dynamicField name="*_l" type="long" indexed="true" stored="true"/><dynamicField name="*_ls" type="longs" indexed="true" stored="true"/><dynamicField name="*_t" type="text_general" indexed="true" stored="true"/><dynamicField name="*_txt" type="text_general" indexed="true" stored="true"/><dynamicField name="*_b" type="boolean" indexed="true" stored="true"/><dynamicField name="*_bs" type="booleans" indexed="true" stored="true"/><dynamicField name="*_f" type="float" indexed="true" stored="true"/><dynamicField name="*_fs" type="floats" indexed="true" stored="true"/><dynamicField name="*_d" type="double" indexed="true" stored="true"/><dynamicField name="*_ds" type="doubles" indexed="true" stored="true"/>

    ?

    既然我們已經(jīng)修改了配置,我們必須停止和啟動(dòng)服務(wù)器。要做到這一點(diǎn),我們需要通過命令行發(fā)出從bin目錄下面的命令。

    Solr??stop?-all

    服務(wù)器將停止現(xiàn)在?,F(xiàn)在啟動(dòng)服務(wù)器問題從bin目錄中通過命令行運(yùn)行以下命令。

    Solr?start

    4.索引數(shù)據(jù)

    Apache Solr帶有一個(gè)叫做SimplePostTool獨(dú)立的Java程序。這個(gè)程序被打包成JAR,在安裝目錄下?example\exampledocs可看到。

    現(xiàn)在,我們?cè)诿钚卸ㄎ坏絜xample\exampledocs文件夾,然后鍵入以下命令。你會(huì)看到一堆選項(xiàng),使用的工具。

    Java?-jar?post.jar -h

    在一般的使用格式如下用途:

    Usage: java [SystemProperties] -jar post.jar [-h|-] [<file|folder|url|arg>

    [<file|folder|url|arg>...]]

    正如我們前面所說,我們將索引“books.csv”文件中的數(shù)據(jù)。我們將導(dǎo)航到solr-5.0.0\example\exampledocs在命令提示符并發(fā)出以下命令。

    java -Dtype=text/csv -Durl=http://localhost:8983/solr/jcg/update ?-jar?post.jar? ?books.csv

    這里使用的SystemProperties是:

  • -dtype - 數(shù)據(jù)文件的類型。
  • -Durl - JCG核心的地址。
  • 文件“books.csv”現(xiàn)在將索引和命令提示符將顯示以下輸出。

    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

    ?

    現(xiàn)在我們導(dǎo)航到以下網(wǎng)址并選擇核心JCG。

    http://localhost:8983/solr

    ?

    Solr的JCG核心數(shù)據(jù)

    就拿在統(tǒng)計(jì)部分仔細(xì)一看,該民文檔參數(shù)將顯示索引的行數(shù)。

    5.訪問索引的文檔

    Apache Solr提供了一種基于REST API來訪問的數(shù)據(jù),并還提供了不同的參數(shù),以檢索數(shù)據(jù)。我們將向您展示一些基于場(chǎng)景的查詢。

    5.1按名稱搜索

    我們將用它的名字檢索書的細(xì)節(jié)。要做到這一點(diǎn),我們將使用下面的語(yǔ)法。URL中的參數(shù)“Q”是查詢事件。

    打開瀏覽器下列URL。

    http://localhost:8983/solr/jcg/select?q=name:"A Clash of Kings"

    輸出將在下面,如圖所示。

    ?

    按名稱SOLR

    5.2首字母搜索

    現(xiàn)在我們將告訴你如何搜索記錄,如果我們只知道起始字母或單詞,不記得完整的標(biāo)題。我們可以用下面的查詢檢索結(jié)果。

    http://localhost:8983/solr/jcg/select?q=name:"A"

    輸出將列出所有的書籍字母A盯著

    ?

    Solr的首字母

    5.3搜索使用通配符

    Solr的支持通配符搜索。我們將下面的展示如何檢索所有書名包含“of”的書。

    http://localhost:8983/solr/jcg/select?q=name:"*of"

    ?

    ?

    Solr的通配符搜索

    5.4搜索使用的條件

    Solr的支持條件的搜索。我們可以設(shè)置條件,我們的查詢提供了“FQ”參數(shù)。在下面我們將告訴你如何查詢價(jià)格低于¥6的書。

    http://localhost:8983/solr/jcg/select?q=*&fq=price:[0 TO 6]

    輸出將只列出這是低于$ 6的書籍。

    ?

    Solr搜索條件

    6. Solr的客戶端API的

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

  • SolRuby – To connect from Ruby
  • SolPHP – To connect from PHP
  • PySolr – To connect from Python
  • SolPerl – To connect from Perl
  • SolrJ – To connect from Java
  • SolrSharp – To connect from C#
  • 此外,Solr還提供了JavaScript可以直接使用的基于REST的API。

    ?

    ?

    ?

    ps:由于篇幅過長(zhǎng),部分段落使用翻譯軟件翻譯,請(qǐng)諒解,但均已手動(dòng)修改,不影響內(nèi)容學(xué)習(xí)。

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

    ?

    總結(jié)

    以上是生活随笔為你收集整理的Apache Solr入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。