1. 程式人生 > >Solr查詢引數wt

Solr查詢引數wt

摘要: 引數wt指定用哪個Response Writer去格式化輸出。參見原文

利用Response Writer,可以很方便地將搜尋的結果轉化成多種形式,便於結果可以整合到不同的應用中去。Solr6.4 已經支援十多種格式輸出,低版本的solr可能不支援其中的一些格式。

支援的格式:

wt引數 使用的Response Writer
csv CSVResponseWriter
geojson GeoJSONResponseWriter
javabin BinaryResponseWriter
json JSONResponseWriter
php PHPResponseWriter
phps PHPSerializedResponseWriter
python PythonResponseWriter
ruby RubyResponseWriter
smile SmileResponseWriter
velocity VelocityResponseWriter
xlsx XLSXResponseWriter
xml XMLResponseWriter
xslt XSLTResponseWriter

XML Response Writer

在solr中,XML是最常見的格式。大部分情況下,XML能夠提供直觀而全面的查詢結果。而且還可以使用XSLT 去轉化成其他格式。使用如下的HTTP請求
http://localhost:8080/solr/core/select?indent=on&q=*:*&wt=xml
等同於:
http://localhost:8080/solr/core/select?indent=on&q=*:*
返回:

<response>
    <lst name="responseHeader">
        <int name="status">0</int
>
<int name="QTime">0</int> <lst name="params"> <str name="q">*:*</str> <str name="indent">on</str> <str name="wt">xml</str> </lst> </lst> <result name="response" numFound="106" start="0"> <doc> <str name="id">c3812fee-de7a-48e5-a60d-79a882aca823</str> <str name="title_s">皇帝諷刺劇</str> <str name="artist_s">鮑勃·迪倫</str> <str name="country_s">美國</str> <str name="company_s">哥倫比亞</str> <double name="price_d">10.9</double> <str name="year_s">1985</str> <str name="type_s">光碟</str> <str name="description_s">夏天的午後聽Bob Dylan的歌特別容易被催眠</str> <long name="_version_">1551502047719718912</long> </doc> </response>

JSON Response Writer

除了XML,還有一個很常見的格式就是JSON(JavaScript Object Notation )了。使用如下的HTTP請求
http://localhost:8080/solr/core/select?q=*:*&wt=json

返回:

{
  "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"*:*",
      "omitHeader":"false",
      "wt":"json"}},
  "response":{"numFound":106,"start":0,"docs":[
      {
        "id":"c3812fee-de7a-48e5-a60d-79a882aca823",
        "title_s":"皇帝諷刺劇",
        "artist_s":"鮑勃·迪倫",
        "country_s":"美國",
        "company_s":"哥倫比亞",
        "price_d":10.9,
        "year_s":"1985",
        "type_s":"光碟",
        "description_s":"夏天的午後聽Bob Dylan的歌特別容易被催眠",
        "_version_":1551502047719718912
        },
        ...
        ]
    }
}

CSV Response Writer

CSV是一種使用逗號分隔值的格式,對於資料分析,這種格式很有用。使用如下的HTTP請求
http://localhost:8080/solr/core/select?fl=id,%20title_s,price_d,%20type_s,description_s&indent=on&q=*:*&wt=csv

返回:

id,title_s,price_d,type_s,description_s
c3812fee-de7a-48e5-a60d-79a882aca823,皇帝諷刺劇,10.9,光碟,"夏天的午後聽Bob Dylan的歌特別容易被催眠"
1724b579-c69c-47b9-9975-43587ecb09d6,隱藏自己的心,9.9,光碟,"對未來,永遠抱著樂觀與喜悅的態度"
723fdec4-66c9-4bad-bad8-18bd4b724859,精選輯,9.9,光碟,"美國曆史上最暢銷的錄音室唱片"
2491d4c9-1776-4fd4-b57a-8015297a8510,依然憂鬱,10.2,光碟,"在聽到他們的現場之後,會愛上這些老男人的聲音"
3a330fce-ba90-44c1-bd63-52b2c9886b4b,厄洛斯,9.9,光碟,"這張專輯以希臘神話中的人物為音樂背景,突顯了希臘作為一個文明古國所擁有的很深厚的文化積澱"
799e088a-2f24-46bc-97e9-b9f5ee7fb5c9,僅此一夜,10.9,光碟,"青春活力十足,主唱聲線可塑性強"
c91b4337-6a96-44db-96be-2d9aa9d64106,麥其·梅,8.5,光碟,"作者是最有才華的詞曲作者之一,是二十世紀六十年代中期的英國入侵浪潮之後的標誌性人物之一"
3a99c14c-2b76-49fe-a0fa-8898635f9e83,浪漫曲,10.8,光碟,"獨一無二的聲音的力量、那令人難以抗拒的溫暖的感覺,這使得語言和文化都不再是阻擋交流的障礙"
57e08775-81a2-49bd-ae7a-455d232fe371,當男人愛上女人,8.7,光碟,"他無法假裝若無其事,他會用全世界來交換,只為了他找到的好東西.即使她很壞,他也看不見,她不會有錯,他會背棄他最要好"
ca49b517-c1b3-4fce-99a0-9f77ab3c5a41,美好時光,8.7,光碟,"這哥們的歌都是自覺自發熱愛自己一畝三分地的城市貧民心聲,毫無怨言。永遠歡樂,永遠飛的大"

當然對於想自定義csv格式的使用者,solr也有一些引數去適應使用者的需求。一些引數:

引數 預設值
csv.encapsulator
csv.separator ,
csv.newline \n
csv.null 預設是一個長度為0的字串
csv.header 預設是true,設定為false的話,返回值中將不包含headers資訊
csv.escape

使用如下的HTTP請求
http://localhost:8080/solr/core/select?fl=id,%20title_s,price_d,%20type_s,description_s&indent=on&q=*:*&wt=csv&csv.separator=|
返回:

id|title_s|price_d|type_s|description_s
c3812fee-de7a-48e5-a60d-79a882aca823|皇帝諷刺劇|10.9|光碟|夏天的午後聽Bob Dylan的歌特別容易被催眠
1724b579-c69c-47b9-9975-43587ecb09d6|隱藏自己的心|9.9|光碟|對未來,永遠抱著樂觀與喜悅的態度
723fdec4-66c9-4bad-bad8-18bd4b724859|精選輯|9.9|光碟|美國曆史上最暢銷的錄音室唱片
2491d4c9-1776-4fd4-b57a-8015297a8510|依然憂鬱|10.2|光碟|在聽到他們的現場之後,會愛上這些老男人的聲音
3a330fce-ba90-44c1-bd63-52b2c9886b4b|厄洛斯|9.9|光碟|這張專輯以希臘神話中的人物為音樂背景,突顯了希臘作為一個文明古國所擁有的很深厚的文化積澱
799e088a-2f24-46bc-97e9-b9f5ee7fb5c9|僅此一夜|10.9|光碟|青春活力十足,主唱聲線可塑性強
c91b4337-6a96-44db-96be-2d9aa9d64106|麥其·梅|8.5|光碟|作者是最有才華的詞曲作者之一,是二十世紀六十年代中期的英國入侵浪潮之後的標誌性人物之一。
3a99c14c-2b76-49fe-a0fa-8898635f9e83|浪漫曲|10.8|光碟|獨一無二的聲音的力量、那令人難以抗拒的溫暖的感覺,這使得語言和文化都不再是阻擋交流的障礙。
57e08775-81a2-49bd-ae7a-455d232fe371|當男人愛上女人|8.7|光碟|他無法假裝若無其事,他會用全世界來交換,只為了他找到的好東西.即使她很壞,他也看不見,她不會有錯,他會背棄他最要好
ca49b517-c1b3-4fce-99a0-9f77ab3c5a41|美好時光|8.7|光碟|這哥們的歌都是自覺自發熱愛自己一畝三分地的城市貧民心聲,毫無怨言。永遠歡樂,永遠飛的大。

Solr也支援多值欄位輸出csv檔案,參見wiki.