Solr查询参数wt

时间:2021-12-07 16:40:11

摘要: 参数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.