国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

Solr常用的查詢參數(shù)

2018-11-23 10:51 更新

在 Solr 中幾個(gè)查詢解析器可以共享由 Solr 支持的查詢參數(shù)。

以下部分描述了 Solr 中常見的查詢參數(shù),Search RequestHandlers 支持這些參數(shù)。

defType 參數(shù)

defType 參數(shù)選擇 Solr 應(yīng)該用來處理請求中的主查詢參數(shù)(q)的查詢解析器。例如:

defType=dismax

如果沒有指定 defType 參數(shù),則默認(rèn)使用標(biāo)準(zhǔn)查詢解析器。(如:defType=lucene)

sort 參數(shù)

sort 參數(shù)按升序 (asc) 或降序 (desc) 順序排列搜索結(jié)果。該參數(shù)可以與數(shù)字或字母內(nèi)容一起使用。方向可以全部以小寫字母或全部大寫字母輸入(即,asc 或者ASC)。

Solr 可以根據(jù)文檔分?jǐn)?shù)或具有單個(gè)值的任何字段的值對查詢響應(yīng)進(jìn)行排序,該字段具有索引或使用 DocValues 的單個(gè)值(即任何字段,它在架構(gòu)屬性包括multiValued="false",要么 docValues="true" 或 indexed="true"- 如果該字段沒有啟用 DocValues,則使用索引術(shù)語在運(yùn)行時(shí)以動態(tài)方式生成它們),條件是:

  • 該字段是非標(biāo)記化的(即,該字段沒有分析器,并且其內(nèi)容已經(jīng)被解析為標(biāo)記,這會使排序不一致),或者
  • 該字段使用僅生成一個(gè)詞的分析器(如 KeywordTokenizer)。

如果您希望能夠?qū)σ獦?biāo)記其內(nèi)容的字段進(jìn)行排序以便于搜索,請使用架構(gòu)中的  copyField 指令克隆該字段。然后在該字段上搜索并對其克隆進(jìn)行排序。

該表說明 Solr 如何響應(yīng) sort 參數(shù)的各種設(shè)置:

結(jié)果

如果省略了 sort 參數(shù),則執(zhí)行排序就好像將該參數(shù)設(shè)置為 scoredesc

score desc

從最高分到最低分按降序排列

price asc

按 price 字段的升序排序

inStock desc,price asc

按降序排列inStock字段的內(nèi)容,然后按照 price 字段的內(nèi)容升序排序

關(guān)于 sort 參數(shù)的參數(shù):

  • 排序順序必須包含一個(gè)字段名稱(或作為偽字段的 score),后跟空格(在 URL 字符串中轉(zhuǎn)義為 + 或 %20),然后是排序方向(asc 或 desc)。
  • 多個(gè)排序順序可以用逗號隔開,使用下面的語法:
     sort=<field name><direction>,<field name><direction>],…?

    如果提供了多個(gè)排序標(biāo)準(zhǔn),則只有在第一個(gè)條目產(chǎn)生并列時(shí)才使用第二個(gè)條目。如果有第三個(gè)條目,則只有在第一個(gè)和第二個(gè)條目是并列的情況下才能使用。這種模式會在之后的條目中繼續(xù)。

start 參數(shù)

指定時(shí),start 參數(shù)指定查詢結(jié)果集中的偏移量,并指示 Solr 開始顯示此偏移量的結(jié)果。

默認(rèn)值是 0。換句話說,默認(rèn)情況下,Solr 返回的結(jié)果沒有偏移量,從結(jié)果開始的地方開始。

將該 start 參數(shù)設(shè)置為某個(gè)其他數(shù)字(例如3,)會導(dǎo)致 Solr 跳過前面的記錄,并從由偏移量標(biāo)識的文檔開始。

您可以使用這個(gè) start 參數(shù)來進(jìn)行分頁。例如,如果 rows 參數(shù)設(shè)置為10,則可以通過將 start 設(shè)置為0來顯示3個(gè)連續(xù)的結(jié)果頁面,然后重新發(fā)出相同的查詢并將 start 設(shè)置為10,然后再次發(fā)出查詢并將 start 設(shè)置為 20。

rows 參數(shù)

您可以使用該 rows 參數(shù)將查詢的結(jié)果分頁。該參數(shù)指定 Solr 應(yīng)該一次返回到客戶端的完整結(jié)果集中的最大文檔數(shù)目。

默認(rèn)值是10。也就是說,默認(rèn)情況下,Solr 一次返回 10 個(gè)文檔以響應(yīng)查詢。

fq(Filter Query)參數(shù)

fq 參數(shù)定義了一個(gè)查詢,可以用來限制可以返回的文檔的超集,而不影響 score。這對于加快復(fù)雜查詢非常有用,因?yàn)橹付ǖ牟樵?fq 是獨(dú)立于主查詢而被緩存的。當(dāng)以后的查詢使用相同的過濾器時(shí),會有一個(gè)緩存命中,過濾器結(jié)果從緩存中快速返回。

使用該 fq 參數(shù)時(shí),請記住以下幾點(diǎn):

  • 該 fq 參數(shù)可以在查詢中多次指定。如果文檔位于參數(shù)的每個(gè)實(shí)例所產(chǎn)生的文檔集的交集中,則文檔將僅包含在結(jié)果中。在下面的例子中,只有流行度大于10并且段落為0的文檔才會匹配。
    fq=popularity:[10 TO *]&fq=section:0
  • filter 查詢可能涉及復(fù)雜的 Boolean 查詢。上面的例子也可以寫成一個(gè)單獨(dú) fq 的兩個(gè)強(qiáng)制性的子句,如下所示:
    fq=+popularity:[10 TO *] +section:0
  • 每個(gè)過濾器查詢的文檔集都是獨(dú)立緩存的。因此,關(guān)于前面的例子:如果這些條款經(jīng)常出現(xiàn)在一起,則使用一個(gè)包含兩個(gè)強(qiáng)制性條款的單個(gè) fq,如果它們相對獨(dú)立,則使用兩個(gè)單獨(dú)的 fq 參數(shù)。(要了解調(diào)整高速緩存大小并確保過濾器緩存是實(shí)際存在的,請參閱“良好配置的 Solr 實(shí)例”。)
  • 還可以在 fq 內(nèi)部使用 filter(condition) 語法來單獨(dú)緩存子句, 以及在其他情況下,實(shí)現(xiàn)緩存的篩選器查詢的聯(lián)合。
  • 與所有參數(shù)一樣:URL 中的特殊字符需要正確轉(zhuǎn)義并編碼為十六進(jìn)制值。在線工具可以幫助您使用 URL 編碼。例如:http : //meyerweb.com/eric/tools/dencoder/。

fl(Field List)參數(shù)

該 fl 參數(shù)將查詢響應(yīng)中包含的信息限制在指定的字段列表中。這些字段必須是 stored="true" 或 docValues="true"。

字段列表可以指定為空格分隔或逗號分隔的字段名稱列表。字符串“score”可以用來表示特定查詢的每個(gè)文檔的分?jǐn)?shù)應(yīng)該作為字段返回。通配符 * 選擇文檔中的所有字段,它們是 stored="true"、docValues="true" 和 useDocValuesAsStored="true"(當(dāng)啟用 docValues 時(shí),這是默認(rèn)字段)。您還可以添加偽字段(pseudo-fields)、函數(shù)和變換器到字段列表請求。

本表顯示了如何使用 fl 參數(shù)的一些基本示例:

字段列表(Field List) 結(jié)果

id name price

僅返回 ID,name 和 price 字段。

id,name,price

僅返回 ID,name 和 price 字段。

id name, price

僅返回 ID,name 和 price 字段。

 id score

返回 id 字段和 score。

*

返回每個(gè)文檔中的所有 stored 字段,以及任何 useDocValuesAsStored="true" 的 docValues 字段。這是 fl 參數(shù)的默認(rèn)值。

* score

返回每個(gè)文檔中的所有字段以及每個(gè)字段的 score。

*,dv_field_name

返回每個(gè)文檔中的所有stored字段,以及任何具有 useDocValuesAsStored =“true” 的 docValues 字段和來自 dv_field_name 的 docValues,即使它具有useDocValuesAsStored =“false”。

函數(shù)與 fl

可以為結(jié)果中的每個(gè)文檔計(jì)算函數(shù),并將其作為偽字段(pseudo-field)返回:

fl=id,title,product(price,popularity)

文件變換器與 fl

文檔變換器可以用來修改查詢結(jié)果中每個(gè)文檔返回的信息:

fl=id,title,[explain]

字段名稱別名

您可以通過使用 “displayName” 前綴來更改對字段、函數(shù)或轉(zhuǎn)換器的響應(yīng)中使用的鍵。例如:

fl=id,sales_price:price,secret_sauce:prod(price,popularity),why_score:[explain style=nl]
{
"response": {
    "numFound": 2,
    "start": 0,
    "docs": [{
        "id": "6H500F0",
        "secret_sauce": 2100.0,
        "sales_price": 350.0,
        "why_score": {
            "match": true,
            "value": 1.052226,
            "description": "weight(features:cache in 2) [DefaultSimilarity], result of:",
            "details": [{
                "..."
}]}}]}}

debug 參數(shù)

該 debug 參數(shù)可以多次指定,并支持以下參數(shù):

  • debug=query:僅返回有關(guān)查詢的調(diào)試信息。
  • debug=timing:返回有關(guān)查詢花費(fèi)多長時(shí)間處理的調(diào)試信息。
  • debug=results:返回關(guān)于 score 結(jié)果的調(diào)試信息(也稱為“解釋”)。默認(rèn)情況下,score 解釋以大字符串值的形式返回,對結(jié)構(gòu)和可讀性使用換行符和制表符縮進(jìn)行,但是可以指定一個(gè)附加參數(shù) debug.explain.structured=true 來將此信息作為 wt 請求的響應(yīng)格式的嵌套數(shù)據(jù)結(jié)構(gòu)返回。
  • debug=all:返回關(guān)于 request 請求的所有可用調(diào)試信息。(可替代地使用:debug=true)

為了向后兼容老版本的 Solr,debugQuery=true 可以將其指定為另一種指示方式 debug=all。

默認(rèn)行為是不包含調(diào)試信息。

explainOther 參數(shù)

該 explainOther 參數(shù)指定了一個(gè) Lucene 查詢來標(biāo)識一組文檔。如果包含此參數(shù)并設(shè)置為非空值,則查詢將返回調(diào)試信息以及與 Lucene 查詢相匹配的每個(gè)文檔的“說明信息”(相對于主查詢(由 q 指定)參數(shù))。例如:

q=supervillians&debugQuery=on&explainOther=id:juggernaut

上面的查詢允許您檢查頂級匹配文檔的評分解釋信息,將其與 id:juggernaut 文檔匹配的解釋信息進(jìn)行比較,并確定排名不符合您的期望的原因。

這個(gè)參數(shù)的默認(rèn)值是空的,這不會導(dǎo)致返回額外的“解釋信息”。

timeAllowed 參數(shù)

此參數(shù)指定允許搜索完成的時(shí)間量(以毫秒為單位)。如果此時(shí)間在搜索完成之前到期,任何部分結(jié)果將返回,但如 numFound、facet 數(shù)和結(jié)果的統(tǒng)計(jì)的值可能對整個(gè)結(jié)果集不準(zhǔn)確。

此值僅在以下時(shí)間檢查:

  1. 查詢擴(kuò)展(Query Expansion)
  2. 文件收集()Document collection

由于此檢查是周期性執(zhí)行的,因此在中止請求之前處理請求的實(shí)際時(shí)間將略微大于或等于 timeAllowed 的值。如果請求在其他階段中花費(fèi)更多時(shí)間,自定義組件等,則不希望此參數(shù)中止請求。

segmentTerminateElely 參數(shù)

該參數(shù)可以設(shè)置為 true 或 false。

如果設(shè)置為 true,并且如果此集合的 mergePolicyFactory 是 SortingMergePolicyFactory(使用的 sort 選項(xiàng)與此查詢指定的 sort 參數(shù)兼容),則 Solr 將嘗試使用 EarlyTerminatingSortingCollector。

如果提前終止(early termination)使用,一個(gè) segmentTerminatedEarly 標(biāo)題將包含在 responseHeader。

使用類似的 timeAllowed `Parameter, 當(dāng)早期段終止發(fā)生時(shí),例如值 `numFound,F(xiàn)acet 計(jì)數(shù),并導(dǎo)致 Stats 可能不準(zhǔn)確對整個(gè)結(jié)果集。

這個(gè)參數(shù)的默認(rèn)值是 false。

omitHeader 參數(shù)

該參數(shù)可以設(shè)置為 true 或 false。

如果設(shè)置為 true,則此參數(shù)將從返回的結(jié)果中排除標(biāo)題。標(biāo)題包含有關(guān)請求的信息,例如完成所需的時(shí)間。該參數(shù)的默認(rèn)值是 false。

wt 參數(shù)

該 wt 參數(shù)選擇 Solr 應(yīng)該用來格式化查詢響應(yīng)的 Response Writer。有關(guān)響應(yīng)寫入程序的詳細(xì)說明,請參閱響應(yīng)寫入程序。

如果您沒有在查詢中定義 wt 參數(shù),那么 JSON 將作為響應(yīng)的格式返回。

 cache 參數(shù)

Solr 默認(rèn)緩存所有查詢的結(jié)果并過濾查詢。要禁用結(jié)果緩存,請?jiān)O(shè)置 cache=false 參數(shù)。

您也可以使用該 cost 選項(xiàng)來控制計(jì)算非緩存篩選器查詢的順序。這使您可以在昂貴的非緩存過濾器之前訂購更便宜的非緩存過濾器。

對于成本非常高的過濾器,如果 cache=falseand 并且 cost>=100 和查詢實(shí)現(xiàn)了 PostFilter 接口,則將從該查詢請求收集器,并在匹配主查詢和所有其他過濾器查詢后用于過濾文檔??梢杂卸鄠€(gè)后置過濾器;他們也按成本排序。

例如:

這是一個(gè)正常的函數(shù)范圍查詢,用作過濾器,所有匹配的文件都是預(yù)先生成和緩存的:

fq={!frange l=10 u=100}mul(popularity,price)

這是一個(gè)與傳統(tǒng)的 lucene 過濾器并行運(yùn)行的函數(shù)范圍查詢:

fq={!frange l=10 u=100 cache=false}mul(popularity,price)

這是在每個(gè)已經(jīng)匹配查詢和所有其他過濾器的文檔之后檢查的函數(shù)范圍查詢。這對于非常昂貴的函數(shù)查詢是很好的:

fq={!frange l=10 u=100 cache=false cost=100}mul(popularity,price)

logParamsList 參數(shù)

默認(rèn)情況下,Solr 記錄請求的所有參數(shù)。設(shè)置此參數(shù)以限制請求的哪些參數(shù)被記錄。這可能有助于將日志記錄控制為僅對貴組織認(rèn)為重要的參數(shù)。

例如,你可以像這樣定義:

logParamsList=q,fq

只有 'q' 和 'fq' 參數(shù)會被記錄。

如果沒有參數(shù)應(yīng)該被記錄,你可以發(fā)送 logParamsList 為空(即,logParamsList=)。

Tip:這個(gè)參數(shù)不僅適用于查詢請求,而且適用于 Solr 的任何類型的請求。

echoParams 參數(shù)

該 echoParams 參數(shù)控制響應(yīng)頭中包含的有關(guān)請求參數(shù)的信息。

該 echoParams 參數(shù)接受以下值:

  • explicit:這是默認(rèn)值。只有實(shí)際請求中包含的參數(shù)以及 _參數(shù)(這是一個(gè) 64 位數(shù)字時(shí)間戳)將被添加到響應(yīng)頭的 params 部分。
  • all:包含對查詢作出貢獻(xiàn)的所有請求參數(shù)。這將包括在 solrconfig.xml 中找到的請求處理程序定義中定義的所有內(nèi)容以及請求中包含的參數(shù)以及 _參數(shù)。如果參數(shù)包含在請求處理程序定義和請求中,則它將在響應(yīng)頭中出現(xiàn)多次。
  • none:完全刪除響應(yīng)頭的 “params” 部分。在響應(yīng)中沒有關(guān)于請求參數(shù)的信息。

下面是一個(gè) JSON 響應(yīng)的例子,其中沒有包含 echoParams 參數(shù),所以缺省值 explicit 是活動的。創(chuàng)建此響應(yīng)的請求的 URL 包括三個(gè)參數(shù) - q,wt 和 indent:

{
  "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
      "q": "solr",
      "indent": "true",
      "wt": "json",
      "_": "1458227751857"
    }
  },
  "response": {
    "numFound": 0,
    "start": 0,
    "docs": []
  }
}

如果發(fā)送了一個(gè)類似的請求,并添加 echoParams=all 到前面示例中使用的三個(gè)參數(shù)中,則會發(fā)生這種情況:

{
  "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
      "q": "solr",
      "df": "text",
      "preferLocalShards": "false",
      "indent": "true",
      "echoParams": "all",
      "rows": "10",
      "wt": "json",
      "_": "1458228887287"
    }
  },
  "response": {
    "numFound": 0,
    "start": 0,
    "docs": []
  }
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號