W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Blob Store REST API提供REST方法來存儲(chǔ)、檢索或列出Lucene索引中的文件。
它可以用來上傳包含標(biāo)準(zhǔn)solr組件(如 RequestHandlers、SearchComponents 或其他為 solr 編寫的自定義代碼)的 jar 文件。架構(gòu)組件不還支持 Blob 存儲(chǔ)。
當(dāng)使用blob存儲(chǔ)時(shí),請(qǐng)注意,如果上傳了新名稱,則API不會(huì)刪除或覆蓋之前的對(duì)象。它總是向索引添加一個(gè)新的blob版本。刪除可以使用標(biāo)準(zhǔn)的REST刪除命令來執(zhí)行。
Blob存儲(chǔ)只能在SolrCloud模式下運(yùn)行。獨(dú)立模式下的Solr不支持使用Blob存儲(chǔ)。
blob store API是作為 requestHandler 實(shí)現(xiàn)的。使用名為“.system”的特殊集合來存儲(chǔ) blob。這個(gè)集合可以被預(yù)先創(chuàng)建,但是如果它不存在,它將被自動(dòng)創(chuàng)建。
在將blob上傳到blob存儲(chǔ)區(qū)之前,必須創(chuàng)建一個(gè)特殊的集合并且必須命名為.system。如果尚未存在,Solr將自動(dòng)創(chuàng)建該集合,但是如果您選擇,則您也可以手動(dòng)創(chuàng)建它。
BlobHandler 自動(dòng)注冊(cè)在.system集合中。該集合的 solrconfig.xml、架構(gòu)和其他配置文件由系統(tǒng)自動(dòng)提供,并不需要進(jìn)行特別限定。
如果不使用-shards或-replicationFactor選項(xiàng),則將使用默認(rèn)值:numShards = 1 和 replicationFactor = 3(或群集中的最大節(jié)點(diǎn)數(shù))。
您可以使用集合 API 創(chuàng)建 .system集合,如下例所示:
curl http://localhost:8983/solr/admin/collections?action=CREATE&name=.system&replicationFactor=2
注意:該 bin/solr 腳本不能用于創(chuàng)建 .system 集合
創(chuàng)建.system集合之后,可以將文件上傳到blob store,請(qǐng)求類似于以下內(nèi)容:
curl -X POST -H 'Content-Type: application/octet-stream' --data-binary @{filename} http://localhost:8983/solr/.system/blob/{blobname}
例如,要將名為“test1.jar”的文件上傳到名為“test”的blob,您可以發(fā)出POST請(qǐng)求,如:
curl -X POST -H 'Content-Type: application/octet-stream' --data-binary @test1.jar http://localhost:8983/solr/.system/blob/test
GET請(qǐng)求將返回blob列表和其他詳細(xì)信息:
curl http://localhost:8983/solr/.system/blob?omitHeader=true
輸出如下所示:
{
"response":{"numFound":1,"start":0,"docs":[
{
"id":"test/1",
"md5":"20ff915fa3f5a5d66216081ae705c41b",
"blobName":"test",
"version":1,
"timestamp":"2015-02-04T16:45:48.374Z",
"size":13108}]
}
}
有關(guān)各個(gè)blob的詳細(xì)信息可以通過類似于以下的請(qǐng)求來訪問:
curl http://localhost:8983/solr/.system/blob/{blobname}
例如,這個(gè)請(qǐng)求將只返回名為“test”的blob:
curl http://localhost:8983/solr/.system/blob/test?omitHeader=true
輸出如下所示:
{
"response":{"numFound":1,"start":0,"docs":[
{
"id":"test/1",
"md5":"20ff915fa3f5a5d66216081ae705c41b",
"blobName":"test",
"version":1,
"timestamp":"2015-02-04T16:45:48.374Z",
"size":13108}]
}
}
文件流響應(yīng)編寫器可以返回一個(gè)特定版本的blob進(jìn)行下載,如下所示:
curl http://localhost:8983/solr/.system/blob/{blobname}/{version}?wt=filestream > {outputfilename}
對(duì)于最新版本的blob,{version}可以省略,
curl http://localhost:8983/solr/.system/blob/{blobname}?wt=filestream > {outputfilename}
要使用blob作為請(qǐng)求處理程序或搜索組件的類,可以在solrconfig.xml中照常創(chuàng)建請(qǐng)求處理程序。您將需要定義以下參數(shù):
完全合格的類名。例如,如果您創(chuàng)建了一個(gè)名為CRUDHandler的新的請(qǐng)求處理程序類,則可以輸入org.apache.solr.core.CRUDHandler
。
設(shè)置為true,要求該組件應(yīng)從加載運(yùn)行時(shí) jar 的加載器中加載。。
例如,要使用名為test的blob,您可以在solrconfig.xml中像這樣配置:
<requestHandler name="/myhandler" class="org.apache.solr.core.myHandler" runtimeLib="true" version="1">
</requestHandler>
如果自定義處理程序中有可用的參數(shù), 則可以使用與任何其他請(qǐng)求處理程序定義相同的方式來定義它們。
注意:Blob store 只能用于動(dòng)態(tài)加載在 solrconfig. xml 中配置的組件。在 solrconfig. xml 中指定的組件不能從 blob store 加載。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: