關於(About)html
官方文檔介紹了全部的Apache Solr實現的重要特性和功能。它是免費的,能夠到http://lucene.apache.org/solr/下載。java
爲了更加的深刻和普遍,設計成一個較高水平的文檔,而不是一個菜譜。文檔定位到比較普遍的需求,幫助新手和經驗豐富的開發人員擴展他們的應用,幫助他們定位和解決問題。在應用開發生命週期中,關於任何一點關於Solr的內容均可以使用這個文檔,會獲得最權威的信息。
node
這裏默認你熟悉搜索的概念而且可以讀懂XML,你不須要是個Java程序員,可是有必定的Java基礎對於使用Solr是頗有幫助的。程序員
主機和端口樣例:數據庫
Solr的運行時的默認端口是8983,在例子中網址和截圖可能會顯示不一樣的端口,由於Solr的使用的端口號是可配置的。若是你尚未定製你的Solr的安裝,請確保你按照示例時使用端口8983,或配置本身的安裝使用示例中顯示的端口號。有關配置端口號的信息,請參閱有關章節。一樣,URL示例使用'localhost';若是你是從遠程位置訪問Solr的託管服務器,能夠設置相應的域名和IP地址。
路徑:apache
路徑信息在solr.home之處,在solr安裝以後,data和conf目錄將被建立。json
開始Solr(Getting Started)bootstrap
Solr可讓程序員更加簡單的使用先進的特性(例如層面搜索)開發出準確、高效的搜索應用。Solr是基於另外一個開源搜索技術Lucene(一個Java庫,提供索引和搜索技術,高亮顯示、拼寫檢查、語義分析等功能)。Solr和Lucene都由Apache軟件基金會管理。瀏覽器
Lucene搜索庫目前在top15的開源項目中位列前茅,Apache項目top5開源項目之一,超過4000家公司使用。 Lucene/ Solr的下載量已經超過過去三年,增加了近十倍。 Solr搜索服務器提供了構建於Lucene搜索庫上層的搜索平臺,是增加最快的Lucene子項目。 Apache Lucene/ Solr提供了一個成熟的搜索解決方案。服務器
本節將幫助你快速安裝、啓動Solr並介紹Solr的基本結構和功能。
包括如下主題:
安裝Solr:Solr的安裝過程的演練。
運行Solr:介紹運行Solr。包括啓動服務器,添加文件,運行查詢的信息。
快速瀏覽:站在較高的角度介紹Solr的工做原理。
更近一步:介紹Solr的主目錄和配置選項。
Solr的啓動腳本參考:bin/solr script。
安裝Solr(Installing Solr)
本節將介紹如何安裝Solr的。你能夠在任何系統中安裝的Solr,目前包括Linux,OS X和Microsoft Windows。須要Java運行時環境(JRE)是可用的,詳見下文。在本節說明適用於任何平臺,Windows少數例外。
獲取Java?
你須要1.7或更高版本Java運行時環境(JRE),在命令行輸入如下命令檢查Java版本:
$ java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
安裝Solr:
準備好平臺環境後,能夠到http://lucene.apache.org/solr/.下載Solr相應安裝包。以Linux爲例,簡單起見在home目錄下解壓安裝包:
$ cd ~/ $ tar zxf solr-5.0.0.tgz
解壓好安裝包以後你就能夠根據Solr的運行說明來啓動運行Solr了。
運行Solr(Running Solr)
本節將介紹如何用一個例子模式運行Solr,如何添加文件,以及如何運行查詢。
啓動服務:
若是安裝後沒有啓動,能夠經過bin/solr目錄來啓動
$ bin/solr start
若是在Windows平臺,能夠這樣啓動:
bin\solr.cmd start
這樣就能夠在後臺啓動Solr,並監聽8983端口。
當在後臺啓動Solr後,腳本就會檢查啓動的正確性並返回將提示信心返回到控制檯。
/bin/solr 和 bin\solr.cmd腳本容許自定義啓動solr。來演示使用bin/solr腳本幾個例子(若是是Windows平臺可使用另一個命令)。
Solr腳本選項:
bin/solr 腳本有幾個使用選項:
幫助選項:
查看怎麼使用bin/solr腳本
$ bin/solr -help
有關啓動命令的具體說明:
$ bin/solr start -help
在前臺啓動Solr:
$ bin/solr start -f
#Windows:
bin\solr.cmd start -f
在不一樣端口啓動Solr:
$ bin/solr start -p 8984
中止Solr:
$ bin/solr stop -p 8983
也可使用-all參數來關閉全部運行中的Solr實例。
經過一個具體的實例配置來啓動Solr:
Solr也提供了一些有用的示例來幫助你學習Solr的關鍵特性,你可使用-e參數來啓動示例,例如啓動"techproducts"示例,你須要這麼作:
$ bin/solr -e techproducts
如今,你可使用的例子有:techproducts, dih, schemaless, and cloud. 關於每一個例子的細節請查看:Running with Example Configurations。
檢查Solr是否在運行:
若是你不肯定Solr在本地正在運行的話,可使用查看狀態的命令:
$ bin/solr status
這個命令會查找你計算機上的Solr實例,並收集它們的基本信息,例如版本和內存使用狀況。若是想進一步肯定,可使用Web瀏覽器的管理控制檯。
http://localhost:8983/solr/
Solr管理接口
若是Solr沒有正在運行,瀏覽器會提示鏈接不上服務器,能夠檢查一下端口號而後重試。
建立一個Core:
若是你沒有使用示例配置,爲了可以創建索引和查詢,你必須建立一個Core。你能夠這樣作:
$ bin/solr create -c <name>
這會使用data-driven schema建立一個core,會嘗試根據添加的文檔來肯定類型創建索引。
查看全部建立新core的選項:
$ bin/solr create -help
添加文檔:
Solr內置查找匹配查詢的文檔,Solr的schema提供了內容的結構(更多關於schema的內容在後面),可是沒有文檔就沒有能夠查找的。在Solr起做用以前須要輸入。
在嘗試爲內容添加索引以前,你可能會添加一些簡單的樣本文檔。在example/目錄的子目錄下有不一樣的類型。
在bin/目錄下有一個發送腳本,是一個命令行工具,能夠索引不一樣的文檔。如今不須要關心太多細節。索引部分的全部細節都在The Indexing and Basic Data Operations部分。
要查看有關bin/post的有關信息,使用-help選項。Windows用戶能夠參考bin/post工具的Windows部分。
bin/post能夠發送各類數據類型到Solr,包括原生的XML和JSON格式、CSV文件,豐富的文檔目錄樹,甚至是抓取的簡單網頁。
繼續,根據示例XML文件添加全部文檔:
$ bin/post -c gettingstarted example/exampledocs/*.xml SimplePostTool version 5.0.0 Posting files to [base] url http://localhost:8983/solr/gettingstarted/update... Entering auto mode. File endings considered are xml,json,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log POSTing file gb18030-example.xml (application/xml) to [base] POSTing file hd.xml (application/xml) to [base] POSTing file ipod_other.xml (application/xml) to [base] POSTing file ipod_video.xml (application/xml) to [base] POSTing file manufacturers.xml (application/xml) to [base] POSTing file mem.xml (application/xml) to [base] POSTing file money.xml (application/xml) to [base] POSTing file monitor.xml (application/xml) to [base] POSTing file monitor2.xml (application/xml) to [base] POSTing file mp500.xml (application/xml) to [base] POSTing file sd500.xml (application/xml) to [base] POSTing file solr.xml (application/xml) to [base] POSTing file utf8-example.xml (application/xml) to [base] POSTing file vidcard.xml (application/xml) to [base] 14 files indexed. COMMITting Solr index changes to http://localhost:8983/solr/gettingstarted/update... Time spent: 0:00:00.153
Solr已經爲這些文檔創建索引幷包含在這些文件中。
查詢:
如今,你有索引的文檔能夠執行查詢。最簡單的方法就是構建一個包含查詢參數的URL。構建任何其餘的HTTP URL是徹底同樣的。
例以下面在全部文檔中查詢video:
http://localhost:8983/solr/gettingstarted/select?q=video
注意URL的組織方式,包含主機名(localhost),服務器監聽的端口號(8983),應用程序名稱(SOLR),進行查詢(選擇)的請求處理程序,查詢自己(Q=video)。
結果包含在一個XML文檔裏,你能夠點擊上面的鏈接。文檔包含兩部分,第一部分是響應頭,包含相應自己的信息。相應的主題部分包含一個或多個文檔標籤。每個都包含匹配查詢的文檔字段。你可使用標準的XML文檔轉換技術生成合適的文檔展現給用戶。另外,Solr還能夠返回JSON,PHP,Ruby、甚至是用戶自定義的格式。
下面的屏幕截圖顯示了查詢的結果(實際上是下面的例子)。頂層響應包含一個名爲響應頭和一個結果名爲響應列表。結果裏面,你能夠看到三個搜索結果。
你一旦掌握了查詢的基本思想,很容易探索並用好查詢語法。下面這個和以前同樣,不過在每一個返回文檔裏只包含ID、name、price。若是你不指定具體的字段,全部的都會返回。
http://localhost:8983/solr/gettingstarted/select?q=video&fl=id,name,price
下面是搜索name字段爲black的另外一個例子,若是你不指定字段,會返回在schema中定義的默認字段。
http://localhost:8983/solr/gettingstarted/select?q=name:black
能夠規定字段的範圍,下面查詢price在$0 ~ $400之間的文檔:
http://localhost:8983/solr/gettingstarted/select?q=price:[0%20TO%20400]&fl=id,name,price
Faceted browsing是Solr的關鍵特性之一,它容許用戶縮小對你的應用有意義的查詢結果,例如一個購物網站能夠提供facet來縮小製造商或者價格的搜索結果。Faceting的搜索結果是在返回信息的第三部分,爲了感覺一下Facet的強大,下面看一個查詢,添加了acet=true
and facet.field=cat
http://localhost:8983/solr/gettingstarted/select?q=price:[0%20TO%20400]&fl=id,name,price&facet=true&facet.field=cat
除了Solr的響應頭和查詢結果,一個facet_counts元素也被返回了。下面是一個省略了響應頭和查詢結果的響應,還能夠清楚的看到facet的信息。
<response> <lst name="responseHeader"> ... </lst> <result name="response" numFound="9" start="0"> <doc> <str name="id">SOLR1000</str> <str name="name">Solr, the Enterprise Search Server</str> <float name="price">0.0</float></doc> ... </result> <lst name="facet_counts"> <lst name="facet_queries"/> <lst name="facet_fields"> <lst name="cat"> <int name="electronics">6</int> <int name="memory">3</int> <int name="search">2</int> <int name="software">2</int> <int name="camera">1</int> <int name="copier">1</int> <int name="multifunction printer">1</int> <int name="music">1</int> <int name="printer">1</int> <int name="scanner">1</int> <int name="connector">0</int> <int name="currency">0</int> <int name="graphics card">0</int> <int name="hard drive">0</int> <int name="monitor">0</int> </lst> </lst> <lst name="facet_dates"/> <lst name="facet_ranges"/> </lst> </response>
facet信息展現了每個cat字段值的數量,你能夠容易的提供給用戶一個快捷的縮小查詢範圍的方式。你能夠經過向Solr查詢添加一個或多個過濾器來過濾信息。下面這個請求進一步限制了文檔中軟件類別。
http://localhost:8983/solr/gettingstarted/select?q=price:0%20TO%20400&fl=id,name,price&facet=true&facet.field=cat&fq=cat:software
快速瀏覽(A Quick Overview)
對Solr有過一些瞭解以後,你能夠學習Solr能夠作的全部酷炫的事情。下面這張圖展現了Solr是如何被集成在應用程序裏的。
在上述狀況下,Solr在其餘服務應用程序旁邊運行。例如,一個在線商店應用程序會提供一個用戶界面、一個購物車、和用戶最終購買的方法。而庫存管理應用程序將容許店員編輯產品信息。該產品元數據應保存在某種數據庫和Solr中。Solr能夠很容易的添加商店網上搜索功能,包括如下步驟:
1. 定義一個schema,該schema告訴Solr文檔的哪些內容會被索引。在網上商店示例中,schema中會定義name,description,price,manufacturer等字段。Solr的schema很強大而且很靈活,容許你爲應用程序定製Solr的行爲。具體細節詳見:Documents, Fields, and Schema Design。
2. 在你的應用服務器上部署Solr。
3. 向Solr提交用戶將要查詢的文檔。
4. 在你的應用程序中拓展搜索功能。
因爲Solr基於開放標準,它具備高度的可擴展性。Solr的查詢風格是RESTful的,這意味着在本質上,Solr的查詢是簡單的HTTP請求的URL和結構化文檔響應:主要是XML,也能夠是JSON、CSV或者其餘的格式。這意味着各類客戶端都可以使用Solr,從其餘的Web應用、豐富的客戶端應用以及移動設備。可以使用HTTP的任何平臺均可以使用Solr。關於客戶端API的具體細節詳見:Client APIs。
Solr是基於Apache Lucene的一個高性能、全功能的搜索引擎。Solr對最簡單的關鍵字查詢和複雜的多字段、層面搜索都提供支持。關於查詢的信息詳見:Searching。
若是中還不夠,Solr還能夠處理大批量應用。
一種比較常見的狀況是你有至關多的數據或者大量的查詢。單個服務器不可以承擔巨大的工做量。在這種狀況下,你能夠經過Solr能夠在不少服務器上更好的拆分數據和請求來提升應用程序的性能。能夠根據具體的需求能夠有多個選項能夠進行混合和匹配。
例如,「分片」是一種縮放技術,爲了提升可搜索文檔的規模,超越單臺服務器的物理瓶頸,一個collection被拆分紅多個稱做「Shards」的邏輯分片。傳入的查詢被分配給Collection的每一個分片,以後合併每一個分片的查詢結果並返回。另外一種技術是增長Collection的「副本因子」,這容許你添加額外的Collection副本經過把請求分發到多臺機器處理高併發的請求負載。分片和副本並非相互排斥的,而是共同成就了Solr這個很是強大的可擴展的平臺。
最重要的是,這種大批量應用的說法並不僅是假設:一些著名的網站都在使用Solr,例如,Macy's, Ebay和Zappo's。
更多信息請移步:https://wiki.apache.org/solr/PublicServers.
更近一步(A Step Closer)
你已經對Solr的schema有所瞭解,這節將會介紹Solr的home目錄以及其餘配置選項。
當Solr運行在一個應用服務器上時,須要訪問home目錄。home目錄包括了重要的配置信息和索引的存儲位置。在單機模式下運行和在分佈式模式下運行的home目錄看起來有些不一樣。
下面這些例子展現了Solr home目錄的關鍵部分:
單機模式:
<solr-home-directory>/ solr.xml core_name1/ core.properties conf/ solrconfig.xml schema.xml data/ core_name2/ core.properties conf/ solrconfig.xml schema.xml data/
分佈式模式:
<solr-home-directory>/ solr.xml core_name1/ core.properties data/ core_name2/ core.properties data/
你可能會看到其餘文件,可是須要了解的有一下幾個:
1. solr.xml 指定了你的Solr服務器實例配置選項。有關solr.xml的更多信息,請參閱Solr Cores and solr.xml。
2. Per Solr Core
1)core.properties 爲每一個核心定義了具體的屬性,例如它的名字、屬於哪一個Collection、schema的位置和其餘參數。關於core.properties的更多信息請參考:Defining core.properties。
2)solrconfig.xml中控制高層次的行爲。例如,你能夠指定data目錄的備用位置。有關solrconfig.xml中的詳細信息,請參考Configuring solrconfig.xml。
3)schema.xml(或者managed-schema)描述了將會創建索引的文檔。在schema.xml中,你能夠定義文檔爲Collection的一個fields。你來定義字段類型和fields自己。字段類型的定義功能強大,包括有關Solr如何處理傳入字段值和查詢值的信息。有關schema.xml的更多信息,請參考Documents,Fields,and SchemaDesign。若是你正在使用Solr的Schema API來管理你的fields,你會看到managed-schema 而不是schema.xml(請看Managed Schema Definition in SolrConfig)。
4)data/ 這個目錄包含底層的索引文件。
注意,SolrCloud示例不包括每一個Solr Core的conf目錄(所以沒有solrconfig.xml或者schema.xml)。這是由於conf下的配置文件一般存儲在Zookeeper中,這樣配置文件就可以在集羣中傳播。
若是你是在嵌入式Zookeeper實例下使用Solr,你還能夠看到zoo.cfg和zoo.data,這是Zookeeper的數據和配置文件。可是,若是你是在本身的Zookeeper集羣下使用Solr,你應該提供本身的Zookeeper配置文件,Solr中的拷貝就不會用到。更多信息請參考:SolrCloud。
Solr啓動腳本參考(Solr Start Script Reference)
Solr有一個腳本「bin/solr」用來啓動和中止Solr、建立和刪除Collection和Core、檢查Solr的運行狀態、配置分片等。在Solr安裝目錄下你能夠找到bin/目錄下的腳本。bin/solr 腳本使得Solr運行時可使用簡單的命令來快速完成共同的目標。本節中,標題下方對應可用的命令。對於每個命令,可用的選項都有一個對應的例子。在整個Solr參考指南中大多數在bin/solr下的例子都是可用的。但Running Solr and Getting Started with Solr Cloud這節除外。
啓動和中止:
啓動和重啓:啓動命令啓動Solr,重啓命令容許你在Solr正在運行的時候重啓Solr。
在SolrCloud模式下,啓動和重啓命令有幾種選項,使用示例配置集,主機名和端口不是默認的,指向本地的Zookeeper集羣。
bin/solr start [options] bin/solr start -help bin/solr restart [options] bin/solr restart -help
當使用重啓命令時,必須使用啓動Solr時傳遞的參數。在後臺,中止請求被初始化,因此Solr在再一次啓動以前會中止。若是沒有節點在運行,重啓命令會跳過中止Solr,直接啓動。
可用參數:
bin/solr腳本提供了許多選項,容許你自定義經常使用的方法,例如改變監聽端口。可是,大多數默認值適合於大多數Solr安裝,特別是在剛開始的時候。
參數
|
描述
|
示例
|
---|---|---|
-a "<string>" | 使用額外的JVM參數來啓動Solr,例如-X。若是你使用-D開頭的JVM參數,能夠省略-a選項。 | bin/solr start -a "-Xdebug -Xrunjdwp:transport=dt_socket, server=y,suspend=n,address=1044" |
-cloud |
在SolrCloud模式下啓動Solr,會附帶啓動嵌入到Solr中的Zookeeper實例。 這個選項能夠簡寫爲-c。 若是你已經運行了一個Zookeeper集羣,你不想使用嵌入的Zookeeper(單節點),你應該經過-z參數。 更多的細節參考SolrCloud Mode。 |
bin/solr start -c |
-d <dir> | 定義一個服務器目錄,默認是server(如$SOLR_HOME/server),覆蓋默認值是不常見的。當同一主機上運行多個Solr實例時,更常見的是使用相同的服務器目錄,使用-s選項指定惟一的Solr主目錄。 | bin/solr start -d newServerDir |
-e <name> | 用一個示例配置來啓動Solr,這些示例爲你快速的啓動Solr,或者只啓動特定的功能提供幫助。 可用的選項有:
更多細節參考: Running with Example Configurations |
bin/solr start -e schemaless |
-f | 在前臺啓動Solr,在使用-e選項時不能使用該選項。 | bin/solr start -f |
-h <hostname> | 指定主機名開啓Solr,默認爲「localhost」。 | bin/solr start -h search.mysolr.com |
-m <memory> | 啓動Solr時指定JVM堆的最小值(-Xms)和最大值(-Xmx)。 | bin/solr start -m 1g |
-noprompt | 隱藏全部提示。 例如:當使用cloud示例時,一個交互會話會經過幾個選項配置你的SolrCloud集羣。若是你想默認,能夠在你的請求上簡單的加上-noprompt選項。 |
bin/solr start -e cloud -noprompt |
-p <port> | 指定Solr的運行端口,若是不指定,默認爲8983. | bin/solr start -p 8655 |
-s <dir> | 設置solr.solr.home系統屬性,Solr將在此目錄下建立核心目錄。這容許你在一臺主機上使用-d選項指定同一個server目錄運行多個Solr實例。若是設置了,具體的目錄會包括一個solr.xml文件,除非solr.xml在Zookeeper中已經存在。默認值爲server/solr。 當運行示例時,該參數將被忽略,solr.solr.home取決於示例自己。 |
bin/solr start -s newHome |
-V | 啓動Solr並從啓動腳本獲取詳細信息。 | bin/solr start -V |
-z <zkHost> | 啓動Solr時指定Zookeeper的鏈接字符串。這個選項只與-c選項一塊兒使用,是在SolrCloud模式下啓動的。若是不指定該選項,Solr會使用嵌入的Zookeeper。 | bin/solr start -c -z server1:2181,server2:2181 |
理解了下面的命令你就理解了默認配置是如何工做的了。
bin/solr start bin/solr start -h localhost -p 8983 -d server -s solr -m 512m
若是默認配置可以知足你的需求就沒有必要從新定義了。
設置Java系統屬性:
bin/solr腳本能夠經過-D選項來設置JVM參數,這容許你設置任意的Java系統屬性。例如,設置頻率爲每秒3次的自動軟提交,你能夠這麼作:
bin/solr start -Dsolr.autoSoftCommit.maxTime=3000
SolrCloud模式:
-c和-cloud選項是等價的:
bin/solr start -c
bin/solr start -cloud
若是指定了Zookeeper的鏈接字符串,例如-z 192.168.1.4:2181,那麼Solr鏈接到Zookeeper並加入集羣。若是在使用cloud模式啓動Solr時沒有指定-z選項,Solr就會加載嵌入的Zookeeper,服務器會監聽Solrport+1000端口。若是Solr在8983端口運行,那麼嵌入的Zookeeper就會監聽9983端口。
重要提示:若是你的Zookeeper鏈接字符串使用了chroot,例如「localhost:2181/solr」,而後在使用bin/solr腳本加載SolrCloud以前你須要引導/solr zk節點。要作到這一點就要使用Solr附帶的zkcli.sh腳本,例如:
server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181/solr -cmd bootstrap -solrhome server/solr
當在SolrCloud模式下啓動時,互動腳本會話會提示你選擇一個配置集使用。關於SolrCloud的更多信息參考:Getting Started With SolrCloud
在樣例配置下運行:
bin/solr start -e <name>
這個示例配置能讓你快速入門。
提供了以下示例:
1. cloud:這個示例一臺機器上有1-4個節點的SolrCloud。選擇了該示例,有交互會話會提示你選擇初始化配置集、節點個數、端口、要建立的Collection等。你能夠選擇在$SOLR_HOME/server/solr/configsets下的任意可用的配置。
2. 這個例子是單節點的,示例文檔中的schema包含在$SOLR_HOME/example/exampledocs目錄下,配置集能夠在SOLR_HOME/sever/solr/configsets/sample_techproducts_configs目錄下找到。
3. dih:這個示例中,DataImportHandler (DIH)是可用的,啓用和幾個例子的dataconfig.xml文件預先配置爲不一樣類型的DIH支持的數據(如數據庫內容,電子郵件,RSS訂閱等)。所使用的配置集是爲DIH自定義的,在$SOLR_HOME/example/example-DIH/solr/conf目錄下。關於DIH的更多信息參考:Uploading Structured Data Store Data with the Data Import Handler.
4. schemaless:這個例子是使用managed schema的單節點模式,就像在Managed Schema Definition in SolrConfig一節中所描述的同樣,提供了一個精簡的預約義的schema。Solr會使用此配置運行在Schemaless模式下,當往Solr中添加文檔時,Solr會動態的匹配字段類型並建立。用到的配置集能夠在$SOLR_HOME/server/solr/configsets/data_driven_schema_configs下找到。
中止:
中止命令會發送一個STOP請求到正在運行的Solr節點,容許Solr比較優雅的關閉。命令等待5s後就會強制關閉掉Solr進程(kill -9)。
bin/solr stop [options]
bin/solr stop -help
可用參數:
參數
|
描述
|
示例
|
---|---|---|
-p <port> | 中止運行在指定端口上的Solr實例。若是你運行了不止一個Solr實例,或者在SolrCloud模式下運行,你一樣須要在請求中止時指定端口,或者使用-all選項。 | bin/solr stop -p 8983 |
-all | 中止全部有有效PID的Solr實例。 | bin/solr stop -all |
-k <key> | 用來保護無心中中止的Solr實例。默認爲solrrocks。 | bin/solr stop -k solrrocks |
信息:
版本:version命令簡單的返回已經安裝而且存在的Solr版本。
$ bin/solr version 5.x.0
狀態:狀態命令能展現出運行在本地系統的全部Solr節點的JSON格式的基本信息。狀態命令使用SOLR PID DIR 環境變量來查找Solr的進程文件以獲取Solr的運行狀態,SOLR_PID_DIR變量默認爲bin目錄。
bin/solr status
輸出包括集羣的每一個節點的狀態,例如:
Found 2 Solr nodes: Solr process 39920 running on port 7574 { "solr_home":"/Applications/Solr/solr-5.0.0/example/cloud/node2/solr/", "version":"5.0.0 1658469 - anshumgupta - 2015-02-09 09:54:36", "startTime":"2015-02-10T17:19:54.739Z", "uptime":"1 days, 23 hours, 55 minutes, 48 seconds", "memory":"77.2 MB (%15.7) of 490.7 MB", "cloud":{ "ZooKeeper":"localhost:9865", "liveNodes":"2", "collections":"2"}} Solr process 39827 running on port 8865 { "solr_home":"/Applications/Solr/solr-5.0.0/example/cloud/node1/solr/", "version":"5.0.0 1658469 - anshumgupta - 2015-02-09 09:54:36", "startTime":"2015-02-10T17:19:49.057Z", "uptime":"1 days, 23 hours, 55 minutes, 54 seconds", "memory":"94.2 MB (%19.2) of 490.7 MB", "cloud":{ "ZooKeeper":"localhost:9865", "liveNodes":"2", "collections":"2"}}
健康監測:
在SolrCloud模式下健康監測命令爲每一個Collection生成JSON格式的健康監測報告。健康報告提供了關於Collection的每一個分片的副本狀態信息,包括已提交的文件數量和當前的狀態信息。
bin/solr healthcheck [options]
bin/solr healthcheck -help
可用參數:
參數 |
描述
|
示例
|
---|---|---|
-c <collection> | 須要監測的Collection(必要) | bin/solr healthcheck -c gettingstarted |
-z <zkhost> | Zookeeper鏈接字符串,默認是localhost:8983,若是你的Solr運行端口不是8983,須要指定具體的Zookeeper鏈接字符串。默認端口是Solrport+1000. | bin/solr healthcheck -z localhost:2181 |
下面是一個使用非標準的Zookeeper鏈接字符串健康監測請求和響應的示例,有兩個節點在運行。
$ bin/solr healthcheck -c gettingstarted -z localhost:9865 { "collection":"gettingstarted", "status":"healthy", "numDocs":0, "numShards":2, "shards":[ { "shard":"shard1", "status":"healthy", "replicas":[ { "name":"core_node1", "url":"http://10.0.1.10:8865/solr/gettingstarted_shard1_replica2/", "numDocs":0, "status":"active", "uptime":"2 days, 1 hours, 18 minutes, 48 seconds", "memory":"25.6 MB (%5.2) of 490.7 MB", "leader":true}, { "name":"core_node4", "url":"http://10.0.1.10:7574/solr/gettingstarted_shard1_replica1/", "numDocs":0, "status":"active", "uptime":"2 days, 1 hours, 18 minutes, 42 seconds", "memory":"95.3 MB (%19.4) of 490.7 MB"}]}, { "shard":"shard2", "status":"healthy", "replicas":[ { "name":"core_node2", "url":"http://10.0.1.10:8865/solr/gettingstarted_shard2_replica2/", "numDocs":0, "status":"active", "uptime":"2 days, 1 hours, 18 minutes, 48 seconds", "memory":"25.8 MB (%5.3) of 490.7 MB"}, { "name":"core_node3", "url":"http://10.0.1.10:7574/solr/gettingstarted_shard2_replica1/", "numDocs":0, "status":"active", "uptime":"2 days, 1 hours, 18 minutes, 42 seconds", "memory":"95.4 MB (%19.4) of 490.7 MB", "leader":true}]}]}
Collections and Cores:
bin/solr腳本還能夠幫助你建立Collections(在SolrCloud模式下)或者cores(單節點模式),或者刪除Collections。
注:建立須要相應的權限。
建立命令會監測Solr的運行模式(SolrCloud或者standalone),建立Collections或者Cores取決於運行模式。
bin/solr create options
bin/solr create -help
可用參數:
參數
|
描述
|
示例
|
---|---|---|
-c <name> | 要建立的collection或者core的名字(必須)。 | bin/solr create -c mycollection |
-d <confdir> |
配置目錄, 默認爲 data_driven_schema_configs. 在SolrCloud模式下運行時,參考:Configuration Directories and SolrCloud。 |
bin/solr create -d basic_configs |
-n <configName> | 配置名, 默認和core或者collection名字相同。 | bin/solr create -n basic |
-p <port> | 命令發送到本地Solr實例的端口號,默認的,腳本會嘗試經過正在運行的Solr實例來檢測端口。 這個選項對於在同一臺機器上運行多個Solr實例時選擇具體的實例建立core頗有用。 |
bin/solr create -p 8983 |
-s <shards> -shards |
collection的分片數量,默認值爲1,只在SolrCloud模式下使用。 | bin/solr create -s 2 |
-rf <replicas> -replicationFactor |
collection中的文檔的備份數,默認值爲1.(無複製)。 | bin/solr create -rf 2 |
配置目錄和SolrCloud:
在SolrCloud中建立一個collection以前,須要把用到的配置目錄上傳到Zookeeper。建立命令支持集合和配置目錄是如何工做的幾種狀況,你須要肯定Zookeeper的配置目錄是否要在多個Collection中共享。咱們經過幾個例子來講明SolrCloud的配置目錄是如何工做的。
首先,若是你不使用-d或者-n選項,默認的配置($SOLR_HOME/server/solr/configsets/data_driven_schema_configs/conf)會被上傳到Zookeeper中,使用與Collection相同的名字。例如,接下來的命令就會致使the data_driven_schema_configs配置被上傳到Zookeeper的/configs/contacts下:bin/solr create -c contacts,若是你使用bin/solr create -c contacts2建立另外一個collection,data_driven_schema_configs會拷貝一份上傳到Zookeeper的/configs/contacts2下。你對contacts collection作出的任何改變都不會影響到contacts2 collection。簡單的說,默認的建立行爲,會爲你建立的collection建立一個惟一的副本。
你可使用-n選項覆蓋Zookeeper中配置目錄的名字,例如,bin/solr create -c logs -d basic_configs -n basic命令就會上傳server/solr/configsets/basic_configs/conf目錄到Zookeeper並命名爲/configs/basic。
請注意,咱們使用了-d選項來指定與默認值不一樣的配置。Solr提供了在server/solr/configsets目錄下的幾個內置配置。固然,你也可使用-d選項來指定你的配置目錄。例如,bin/solr create -c mycoll -d /tmp/myconfigs會上傳/tmp/myconfigs到Zookeeper的/configs/mycoll下。再次重申,配置目錄使用和collection同樣的名字,除非你使用-n來指定。
使用-n選項能夠指定共享配置的collection,例以下面的命令建立一個新的collection而且共享已經存在的basic配置:
bin/solr create -c logs2 -n basic
Data-driven schema和共享配置:
data_driven_schema_configs schema能夠變異爲被索引的數據,所以,咱們不推薦你在collection之間共享data-driven配置,除非你肯定全部的collection都要繼承其中一個collection的索引數據的變化。
刪除:
delete命令會監測Solr運行在什麼模式下(standalone或者SolrCloud)而後刪除具體的core或者collection。
bin/solr delete [options]
bin/solr delete -help
若是運行在SolrCloud模式下,delete命令會檢查配置目錄是否在被其餘collections使用,若是沒有配置目錄會從Zookeeper中刪除。例如,若是你用bin/solr create -c contacts命令建立了一個collection,而後刪除命令bin/solr delete -c contacts 會檢查/configs/contacts配置目錄是否被其餘collection使用,若是沒有,/configs/contacts 目錄就會從Zookeeper中刪除。
可用參數:
參數
|
描述
|
示例
|
---|---|---|
-c <name> | 要刪除的collection名字(必須) | bin/solr delete -c mycoll |
-deleteConfig <true|false> |
刪除Zookeeper中的配置目錄,默認爲true。 若是配置目錄在被其餘的collection使用,則設置爲true,配置目錄也不會被刪除。 |
bin/solr delete -deleteConfig false |
-p <port> | 發送刪除命令的Solr的本地實例的端口。默認,腳本會嘗試尋找Solr實例來檢測端口。 若是你的同一臺機器上有多個獨立運行的實例,所以會要求你指定具體實例的core。 |
bin/solr delete -p 8983 |
Zookeeper選項:
bin/solr腳本容許某些操做影響Zookeeper。這些操做只在SolrCloud模式下使用。
bin/solr zk [options]
bin/solr zk -help
注:Solr在發出這些命令以前至少要初始化Solr指望的Zookeeper znodes節點一次。一旦Zookeeper被初始化,Solr不須要運行在任何一個節點上就可使用這些命令。
上傳一個配置集:
使用這個Zookeeper子命令上傳預約義的配置集或者自定義的配置集之一到Zookeeper。
可用參數:(全部參數都是必須的)
參數
|
描述
|
示例
|
---|---|---|
-upconfig | 從本地文件系統上傳配置集到Zookeeper | -upconfig |
-n <name> | Zookeeper中配置集的名稱。這個命令會上傳配置集到configs Zookeeper節點。 你能夠從管理控制UI上看見全部已經上傳的配置集。選擇cloud->tree->configs來看。 若是指定了現有的預配置集,它將會被覆蓋。 |
-n myconfig |
-d <configset dir> |
須要上傳的配置集路徑,它應該有一個conf文件夾,須要包含solrconfig.xml等。 若是隻提供了一個名字,$SOLR_HOME/server/solr/configsets會被檢查,使用絕對路徑來代替。 |
-d /absolute/path/to/configset/source |
-z <zkHost> |
Zookeeper鏈接字符串 |
-z 123.321.23.43:2181 |
使用這些參數的上傳命令的一個例子:
bin/solr zk -upconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset
這個命令執行以後不會自動生效!它只是上傳配置集到Zookeeper。你可使用Collections API來向使用此配置集的全部Collection發出RELOAD命令。
下載數據集:
使用這個Zookeeper子命令來下載Zookeeper中的數據集到本地文件系統。
可用參數:(全部參數都是必須的)
參數
|
描述
|
示例
|
---|---|---|
-downconfig | 下載Zookeeper中的數據集到本地文件系統。 | -downconfig |
-n <name> | 要下載的數據集名稱, Admin UI>>Cloud>>tree>>configs 節點列出了全部可用的數據集。 | -n myconfig |
-d <configset dir> |
將數據集下載到哪一個路徑下。 若是隻提供了名稱,SOLR_HOME/server/solr/configsets 會是父路徑。 也支持絕對路徑。 在這兩種狀況下,在目的目錄已經存在的配置集將會被覆蓋。 |
-d directory_under_configsets -d /absolute/path/to/configset/destination |
-z <zkHost> |
Zookeeper鏈接字符串。 |
-z 123.321.23.43:2181 |
使用這些參數的下載命令的一個例子:
bin/solr zk -downconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset
一個「最佳實踐」是將你的配置集在某種版本管理系統中記錄。這種狀況下,downconfig不多被使用。
譯者注:關於Solr的中文資料不多,官方文檔是很是好的資料,在此翻譯供你們參考。在翻譯的過程當中加入了本身的理解,保留了一些術語和概念性的詞彙。一些用處不大的地方省略掉了,因爲水平有限時間有限,不免有錯誤和不許確的地方,歡迎交流。剩下的內容還在翻譯中,歡迎關注。