Solr解析器通用查詢參數

      網友投稿 780 2022-05-29

      本文主要介紹下Solr解析器中通用的查詢參數。這些參數能夠在標準查詢解析器、DisMax查詢解析器及eDisMax查詢解析器中通用。

      下表總結了Solr通用的查詢參數,支持標準的、DisMax、eDisMax查詢請求。

      接下來的章節將詳細描述各個參數。

      defType

      參數defType指定Solr執行主查詢時使用的查詢解析器。比如:defType=dismax。

      如果沒有指定defType,將默認使用標準個查詢解析器。

      sort

      參數sort指定查詢結果升序或降序。這個參數可以作用于數字或字母內容。可以使用全消息或全大寫。(比如,全是asc或ASC)。

      Solr可以根據文檔分值或其他被索引或使用DocValues(即,在schema.xml文件中使用multiValued="false"和docValues="true"或者indexed="true"的字段,如果沒有啟用DocValues,將使用檢索數據)的單值字段值來進行排序。提供:

      沒有進行標記(即,字段沒有analyzer,并且內容被解析進標記,致使排序不一致),或

      使用分析器analyzer(比如KeywordTokenizer)且只產生一個檢索詞。

      如果你向對一個需要進行標記便于檢索的字段排序,可以在schema.xml文件中使用指定復制字段。然后就可以查詢該字段,在克隆字段上排序。

      下面的表格將說明如果設置各種參數來對Solr響應進行排序:

      關于排序參數:

      排序必須包含一個字段名(或打分),之后跟一個空白字符(在URL字符串中使用+或%20),之后跟排序方向(asc或desc)。

      多種排序規則可以使用逗號隔開,使用這樣的語法:sort=+,+],...

      如果有多個排序條件,只有在第一個排序結果并列,第二個才生效。如果有第三個從句,只有當第一個和第二個都并列相同時,才生效。依次類推。

      start

      該參數指定Solr查詢響應展示內容的偏移量。默認值是0.換句話說,默認情況下,Solr返回的結果沒有偏移,從頭開始。設置一個值,比如3,Solr將跳過前面 幾條數據,從指定偏移位置開始返回。你可以使用這種方式來分頁。比如,如果參數rows設置為10,可以通過設置start為0來連續返回幾頁數據,然后使用相同的查詢參數,設置start為10,再次查詢,然后設置20.

      rows

      可以使用參數rows來進行分頁查詢。這個參數指定了一次查詢最大返回文檔的數目。默認值是10.就是說,默認一次查詢返回10個文檔數據。

      fq

      參數fq可以定義一個限制返回文檔父集,不影響評分。通過指定參數fq將緩存主查詢,用來提高復雜查詢速度。當之后使用相同的過濾器,將會命中緩存,緩存中的結果立即返回。

      使用參數fq時,需要注意:

      參數fq可以在一個查詢中指定多次。只有每個參數實例的交集才能返回。在下面的例子中,只有popularity大于10且section是0的才能返回。fq=popularity:[10 TO *]&fq=section:0

      過濾查詢可以包含復雜的布爾查詢。上面的例子也可以使用兩個從句一個fq實現:fq=+popularity:[10 TO *] +section:0。

      每個過濾查詢的文檔集都是獨立緩存的。一次,關于簽名的例子:使用一個fq兩個從句,和使用兩個分開的fq將不想同(了解調整高速緩存大小和確保過濾緩存,看配置Solr實例)。

      Solr解析器通用的查詢參數

      對所有參數:在URL中特殊字符需要進行轉移為十六進制。在線工具http://meyerweb.com/eric/tools/dencoder/可以提供這種轉碼。

      fl

      參數fl限制響應信息中包含的字段列表。該字段需要在索引時被存儲。

      字段列表可以通過空格或逗號分割。字符串”score”可以被用來指明特定查詢的每個文檔的分數作為字段返回。通配符”*”表示文檔的所有字段。可以添加偽字段、函數、transformers作為字段返回。

      下表是如果使用fl的基礎示例:

      Function Values

      函數可以為結果中每一個文檔計算結果,并返回偽字段:fl=id,title,product(price,popularity)。

      Document Transformers

      Document Transformers可以用來修改查詢結果中的每一個文件的返回信息:fl=id,title,[explain]。

      Field Name Aliases

      可以指定字段、函數、transformer的顯示名,比如: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":[{ ...

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      debug

      參數debug可以指定多次,并支持以下參數:

      debug=query: 至返回查詢的調試信息

      debug=timing: 返回查詢執行時間的調試信息

      debug=results: 返回結果分值的調試信息

      debug=all: 返回所有的調試信息(也可以使用debug=true)

      為了向后兼容,debugQuery=true可以使用debug=all替代。

      默認查詢不包括調試信息。

      explainOther

      參數explainOther指定Lucene查詢來標記文檔集。如果非空,本次查詢將返回調試信息,以及主查詢(指定q參數)查詢文檔集的解釋信息。比如:q=supervillians&debugQuery=on&explainOther=id:juggernaut。

      上面的查詢允許你檢查最佳匹配的分值解釋信息,可以與id:juggernaut進行比較,可以知道為什么不是你期望的排名。

      默認參數為空,沒有額外解釋信息返回。

      timeAllowed

      This parameter specifies the amount of time, in milliseconds, allowed for a search to complete. If this time expires before the search is complete, any partial results will be returned.

      此參數指定允許搜索完成的時間,以毫秒為單位。如果處理超時,只返回部分信息。

      omitHeader

      This parameter may be set to either true or false.

      該參數可以設置為true或false。

      如果設置為true,返回結果中不包含header數據。header數據包括請求信息,比如請求完成時間。默認是false。

      wt

      指定用于格式化響應結果的請求writer。詳細信息查看Response Writers。

      cache=false

      Solr默認緩存所有的查詢、過濾查詢結果。為了禁用緩存,設置參數cache=false。

      還可以使用cost選項來控制非緩存的過濾查詢。這允許你能夠指定低耗非緩存過濾,而不是高耗非緩存過濾器。

      對于高耗過濾器,如果cache=false,cost>=100,查詢實現了PostFilter,在匹配主查詢和其他過濾查詢之后,一個收集器將被請求來進行查詢和過濾文檔。可以有多個后置過濾器,可以根據cost配置。

      比如:

      // normal function range query used as a filter, all matching documents // generated up front and cached fq={!frange l=10 u=100}mul(popularity,price) // function range query run in parallel with the main query like a traditional // lucene filter fq={!frange l=10 u=100 cache=false}mul(popularity,price) // function range query checked after each document that already matches the query // and all other filters. Good for really expensive function queries. fq={!frange l=10 u=100 cache=false cost=100}mul(popularity,price)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      logParamsList

      默認情況下,Solr日志記錄所有請求參數。從4.7版本開始,可以設置參數來限制哪些參數被記錄。這有助于記錄你認為比較重要的參數。比如,你可以定義:logParamsList=q,fq。只有q和fq參數會被記錄。

      如果不希望記錄任何參數,你可以給參數logParamsList賦空值(比如:logParamsList=)。

      這個參數可以應用與所有的Solr請求,不只查詢請求。

      Lucene/Solr

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:世界上沒有技術驅動型公司
      下一篇:前端嫌棄原生Swagger界面太low,于是我給她開通了超級VIP
      相關文章
      亚洲欧美国产国产综合一区 | 亚洲精品中文字幕麻豆 | 亚洲国产成人九九综合| 亚洲成人中文字幕| 亚洲国产精彩中文乱码AV| 一本久久a久久精品亚洲| 亚洲国产一级在线观看| 亚洲av无码专区在线观看素人| 亚洲hairy多毛pics大全| 亚洲AV无码一区二区三区牲色 | 亚洲成_人网站图片| 一本色道久久88亚洲精品综合| wwwxxx亚洲| 亚洲中文字幕无码久久2020| 狠狠色香婷婷久久亚洲精品| 亚洲已满18点击进入在线观看| 亚洲娇小性xxxx| 亚洲综合一区国产精品| 亚洲乱码av中文一区二区| 亚洲AV无码一区二区大桥未久 | 337P日本欧洲亚洲大胆精品| 女bbbbxxxx另类亚洲| 亚洲国产精品13p| 亚洲日韩在线中文字幕第一页 | 伊人久久亚洲综合| 国产亚洲3p无码一区二区| 久久精品国产亚洲AV麻豆不卡| 久久亚洲精品成人综合| 亚洲天堂中文资源| 亚洲日本国产精华液| 亚洲国产系列一区二区三区| 亚洲国产精品网站在线播放| 国产精品亚洲а∨天堂2021| 久久乐国产精品亚洲综合| 亚洲国产精品福利片在线观看| 亚洲激情在线观看| 亚洲中文字幕在线无码一区二区| 亚洲综合一区无码精品| 亚洲国产成人久久综合碰| 亚洲乱亚洲乱妇无码麻豆| 久久久久亚洲AV片无码下载蜜桃 |