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

Solr請求參數(shù)API

2018-12-14 16:14 更新

請求參數(shù)API允許創(chuàng)建參數(shù)集(又名 paramsets),它可以覆蓋或取代在solrconfig.xml中定義的參數(shù)。

使用此API定義的參數(shù)集可以用于對Solr的請求,也可以直接在 solrconfig.xml 請求處理程序定義中引用。

它實(shí)際上是Config API的另一個端點(diǎn),而不是一個單獨(dú)的API,并且具有不同的命令。它不會替換或修改solrconfig.xml的任何部分,而是提供處理請求中使用的參數(shù)的另一種方法。它的行為方式與Config API相同,通過將參數(shù)存儲在另一個將在運(yùn)行時使用的文件中。在這種情況下,參數(shù)存儲在一個名為params.json的文件中。該文件保存在ZooKeeper中或獨(dú)立的Solr實(shí)例的conf目錄中。

params.json查詢時使用存儲的設(shè)置來覆蓋solrconfig.xml在某些情況下定義的設(shè)置,如下所述。

什么時候可以使用這個功能?請參考以下的幾種情況:

  • 為了避免頻繁編輯您的solrconfig.xml來更新經(jīng)常更改的請求參數(shù)。
  • 在各種請求處理程序中重用參數(shù)。
  • 在請求時混合和匹配參數(shù)集。
  • 為了避免重新加載您的集合,以便進(jìn)行小的參數(shù)更改。

請求參數(shù)端點(diǎn)

所有請求都被發(fā)送到Config API的/config/params端點(diǎn)。

設(shè)置請求參數(shù)

要設(shè)置、取消設(shè)置或更新請求參數(shù)的請求將作為一組包含名稱的地圖發(fā)送。這些對象可以直接用于請求或請求處理程序定義中使用。

可用的命令有:

  • set:創(chuàng)建或覆蓋參數(shù)集映射。
  • unset:刪除一個參數(shù)集映射。
  • update:更新參數(shù)集映射。這相當(dāng)于一個map.putAll(newMap)。這兩個地圖都合并,如果新地圖具有與舊地圖相同的密鑰,則會被覆蓋。

如有必要,您可以將這些命令混合成一個請求。

每個映射都必須包含一個名稱,以便以后可以在對 Solr 的直接請求或請求處理程序定義中引用它。

在下面的例子中,我們設(shè)置了兩組名為“myFacets”和“myQueries”的參數(shù):

curl http://localhost:8983/solr/techproducts/config/params -H 'Content-type:application/json'  -d '{
  "set":{
    "myFacets":{
      "facet":"true",
      "facet.limit":5}},
  "set":{
    "myQueries":{
      "defType":"edismax",
      "rows":"5",
      "df":"text_all"}}
}'

在上面的示例中,所有參數(shù)都等效于 solrconfig. xml 中的 "defaults"??梢蕴砑硬蛔兞坎⒆芳尤缦?

curl http://localhost:8983/solr/techproducts/config/params -H 'Content-type:application/json'  -d '{
  "set":{
    "my_handler_params":{
      "facet.limit":5,
      "_invariants_": {
        "facet":true,
       },
      "_appends_":{"facet.field":["field1","field2"]
     }
   }}
}'

使用請求參數(shù)和RequestHandlers

在上面的章節(jié)中創(chuàng)建了my_handler_params 參數(shù)集之后,可以像下面這樣定義一個請求處理程序:

<requestHandler name="/my_handler" class="solr.SearchHandler" useParams="my_handler_params"/>

它將相當(dāng)于一個標(biāo)準(zhǔn)的請求處理程序定義,例如:

<requestHandler name="/my_handler" class="solr.SearchHandler">
  <lst name="defaults">
    <int name="facet.limit">5</int>
  </lst>
  <lst name="invariants">
    <bool name="facet">true</bool>
  </lst>
  <lst name="appends">
    <arr name="facet.field">
      <str>field1</str>
      <str>field2</str>
    </arr>
  </lst>
</requestHandler>

使用請求參數(shù) API 的隱式 RequestHandlersSolr

Solr附帶有許多現(xiàn)成的請求處理程序,這些處理程序只能通過請求參數(shù)API進(jìn)行配置,因?yàn)樗鼈兊呐渲貌辉趕olrconfig.xml中。在配置隱式請求處理程序時,請參閱Implicit RequestHandlers以使用paramset。

使用RequestHandlers查看擴(kuò)展參數(shù)集和有效參數(shù)

要查看擴(kuò)展的 paramset 和 useParams 定義的 RequestHandler 的有效參數(shù), 請使用 expandParams 請求參數(shù)。例如對于/export請求處理程序:

curl http://localhost:8983/solr/techproducts/config/requestHandler?componentName=/export&expandParams=true

查看請求參數(shù)

要查看已創(chuàng)建的參數(shù)集,可以使用/config/params端點(diǎn)來讀取params.json請求中的內(nèi)容或使用該名稱:

curl http://localhost:8983/solr/techproducts/config/params

#Or use the paramset name
curl http://localhost:8983/solr/techproducts/config/params/myQueries

useParams參數(shù)

發(fā)出請求時,useParams參數(shù)將應(yīng)用發(fā)送給請求的請求參數(shù)。這是在請求時間轉(zhuǎn)換為實(shí)際參數(shù)。

例如(使用我們在前面例子中設(shè)置的名字,請用您自己的名字替換):

http://localhost/solr/techproducts/select?useParams=myQueries

可以在相同的請求中傳遞多個參數(shù)集。例如:

http://localhost/solr/techproducts/select?useParams=myFacets,myQueries

在上面的例子中,參數(shù)集“myQueries”被應(yīng)用在“myFacets”的頂部。因此,“myQueries”中的值優(yōu)先于“myFacets”中的值。此外,請求中傳遞的任何值都優(yōu)先于useParams參數(shù)。這就像在 solrconfig. xml 中的 <requestHandler> 定義中所指定的 "defaults"。

參數(shù)集可以直接在請求處理程序定義中使用,如下所示。請注意,即使請求包含 useParams,也始終應(yīng)用指定的 useParams。

<requestHandler name="/terms" class="solr.SearchHandler" useParams="myQueries">
  <lst name="defaults">
    <bool name="terms">true</bool>
    <bool name="distrib">false</bool>
  </lst>
  <arr name="components">
    <str>terms</str>
  </arr>
</requestHandler>

總而言之,安照以下順序應(yīng)用參數(shù):

  • 在solrconfig.xml的<invariants>中定義的參數(shù)。
  • 應(yīng)用于params.json中的invariants的參數(shù),并且在requesthandler定義中指定或者甚至在請求中。
  • 直接在請求中定義的參數(shù)。
  • 在請求中定義的參數(shù)集,其順序與 useParams 一起列出。
  • 在params.json中定義的參數(shù)集已在請求處理程序中定義。
  • 在solrconfig.xml中的<defaults>中定義的參數(shù)。

公共API

可以使用SolrConfig#getRequestParams()方法訪問RequestParams對象。每個參數(shù)可以通過使用RequestParams#getRequestParams(String name)方法的名稱來訪問。

使用請求參數(shù)API示例

Solr 的 "films" 示例演示了參數(shù) API 的使用。您可以在 Solr 安裝中使用此示例 (在example/films目錄中),或在 https://github.com/apache/lucene-solr/tree/master/solr/example/films 中查看 Apache GitHub 鏡像中的文件。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號