99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

SolrConfig中的RequestDispatcher

2018-12-11 15:47 更新

solrconfig.xml的requestDispatcher元素,控制了Solr HTTP RequestDispatcher實(shí)現(xiàn)對(duì)請(qǐng)求的響應(yīng)方式。

其中包括用于定義是否應(yīng)該處理/select的url的參數(shù)(對(duì)于Solr 1.1兼容性),如果它支持遠(yuǎn)程流,文件上傳的最大大小以及它將如何響應(yīng)HTTP緩存頭的請(qǐng)求。

handleSelect元素

注意:handleSelect 是為了傳統(tǒng)的后向兼容性;那些新來的Solr不需要改變默認(rèn)配置的方式

第一個(gè)可配置項(xiàng)是< requestDispatcher >元素本身的handleSelect當(dāng)選屬性。該屬性可以設(shè)置為“true”或“false”兩個(gè)值之一。它管理Solr如何響應(yīng)請(qǐng)求,如:/select?qt=XXX。如果requestHandler沒有顯式注冊(cè)/select名稱,默認(rèn)值“false”將忽略請(qǐng)求/select。值“true”將查詢請(qǐng)求路由到定義為qt值的解析器。

在Solr的最新版本中,/selectrequestHandler是默認(rèn)定義的,因此值“false”將正常工作。有關(guān)更多信息,請(qǐng)參閱SolrConfig中的RequestHandlers和SearchComponents部分。

<requestDispatcher handleSelect="true" >
  ...
</requestDispatcher>

requestParsers元素

該<requestParsers>子元素控制與解析請(qǐng)求的相關(guān)值。這是一個(gè)空的XML元素,沒有任何內(nèi)容,只有屬性。

該屬性enableRemoteStreaming控制是否允許遠(yuǎn)程傳輸內(nèi)容。如果省略或設(shè)置為false(默認(rèn)),則不允許流式傳輸。將其設(shè)置為true允許您指定要使用stream.file和stream.url參數(shù)進(jìn)行流式傳輸?shù)膬?nèi)容或位置。

如果啟用遠(yuǎn)程流式傳輸,請(qǐng)確保您已啟用身份驗(yàn)證。否則,有人可能通過訪問任意的URL訪問您的內(nèi)容。將Solr放置在防火墻后面以防止從不可信的客戶端訪問Solr也是一個(gè)好主意。

該屬性multipartUploadLimitInKB以可以在多部分HTTP POST請(qǐng)求中提交的文檔的大小為單位設(shè)置以千字節(jié)為單位的上限。指定的值乘以1024來確定以字節(jié)為單位的大小。-1意味著MAX_INT 的值,如果省略,它也是系統(tǒng)默認(rèn)值。

該屬性formdataUploadLimitInKB在HTTP POST請(qǐng)求中提交的表單數(shù)據(jù)(application / x-www-form-urlencoded)的大小上設(shè)置了一個(gè)限制(千字節(jié)),可用于傳遞不適合URL的請(qǐng)求參數(shù)。-1意味著MAX_INT 的值,如果省略,也是系統(tǒng)默認(rèn)值。

該屬性addHttpRequestToContext可以用來指示原始HttpServletRequest對(duì)象應(yīng)該包含在SolrQueryRequest使用httpRequest鍵的上下文映射。HttpServletRequest不是任何Solr組件所使用的,但在開發(fā)自定義插件時(shí)可能會(huì)有用。

<requestParsers enableRemoteStreaming="false"
                multipartUploadLimitInKB="2048"
                formdataUploadLimitInKB="2048"
                addHttpRequestToContext="false" />

以下命令是如何通過Config API啟用RemoteStreaming和BodyStreaming的示例:

curl http://localhost:8983/solr/gettingstarted/config -H 'Content-type:application/json' -d'{
    "set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true},
    "set-property" : {"requestDispatcher.requestParsers.enableStreamBody":true}
}'

httpCaching元素

該<httpCaching>元素控制HTTP緩存控制標(biāo)頭。不要將這些設(shè)置與Solr的內(nèi)部緩存配置混淆。該元素控制由W3C HTTP規(guī)范定義的HTTP響應(yīng)的緩存。

這個(gè)元素允許三個(gè)屬性和一個(gè)子元素。<httpCaching>元素的屬性控制是否允許對(duì)GET請(qǐng)求的304響應(yīng),如果是,則應(yīng)該是什么類型的響應(yīng)。當(dāng)一個(gè)HTTP客戶端應(yīng)用程序發(fā)出一個(gè)GET時(shí),它可以選擇性地指定一個(gè)304響應(yīng)是可接受的,如果該資源從上次被提取以來沒有被修改過。

  • never304

    如果存在值true,則GET請(qǐng)求將永遠(yuǎn)不會(huì)響應(yīng)304代碼,即使請(qǐng)求的資源未被修改。當(dāng)此屬性設(shè)置為true時(shí),接下來的兩個(gè)屬性將被忽略。將其設(shè)置為true對(duì)于開發(fā)是非常方便的,因?yàn)楫?dāng)通過Web瀏覽器或其他支持緩存頭的客戶端修改Solr響應(yīng)時(shí),304響應(yīng)可能會(huì)造成混淆。

  • lastModFrom

    該屬性可以設(shè)置為openTime(默認(rèn))或dirLastMod。該值openTime表示與由客戶端發(fā)送的If-Modified-Since報(bào)頭相比,最后修改時(shí)間應(yīng)該相對(duì)于搜索器開始的時(shí)間來計(jì)算。使用dirLastMod,如果您想要時(shí)間精確地對(duì)應(yīng)于磁盤上最后更新的索引。

  • etagSeed

    這個(gè)屬性的值作為ETag頭的值發(fā)送。即使索引沒有改變,更改此值也可能有助于強(qiáng)制客戶重新獲取內(nèi)容 - 例如,當(dāng)您對(duì)配置進(jìn)行了一些更改時(shí)。

    <httpCaching never304="false"
                 lastModFrom="openTime"
                 etagSeed="Solr">
      <cacheControl>max-age=30, public</cacheControl>
    </httpCaching>

cacheControl元素

除了這些屬性之外,<httpCaching>接受一個(gè)子元素:<cacheControl>。這個(gè)元素的內(nèi)容將作為HTTP響應(yīng)的Cache-Control頭的值發(fā)送。此標(biāo)頭用于修改請(qǐng)求客戶端的默認(rèn)緩存行為。Cache-Control頭的可能值由第14.9節(jié)中的HTTP 1.1規(guī)范定義。

設(shè)置max-age字段控制客戶端在從服務(wù)器再次請(qǐng)求之前可以重新使用緩存響應(yīng)的時(shí)間。此時(shí)間間隔應(yīng)根據(jù)您更新索引的頻率以及您的應(yīng)用程序是否可接受使用已過時(shí)的內(nèi)容來設(shè)置。設(shè)置must-revalidate將告訴客戶端在服務(wù)器上重新使用之前確認(rèn)其緩存副本仍然正常。這將確保使用最及時(shí)的結(jié)果,同時(shí)避免在不需要的情況下再次獲取內(nèi)容,則請(qǐng)求服務(wù)器進(jìn)行檢查。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)