我一直在学习Solr并遇到了一个问题。如果我像这样向Solr查询:
curl "http://localhost:8983/solr/myCollection/select?q=*:*&wt=json&rows=0"
我得到一个有JSON响应的网页。但是,网页标题没有说明内容类型。
我想在标题中获取Content-Type,以便查询Solr的人可以使用漂亮的打印工具来清理Solr响应并使其更具可读性而无需提供" indent = on&#34 ;一直都是选择。
任何帮助?
由于
<html>
<head>
<link rel="alternate stylesheet" type="text/css"
href="resource://gre-resources/plaintext.css"
title="Wrap Long Lines">
<style type="text/css"></style>
</head>
<body>
<pre>{"responseHeader":{"status":0,"QTime":0,"params":
{"q":"*:*","rows":"0","wt":"json"}},"response":
{"numFound":27394430,"start":0,"docs":[]}}
</pre>
</body>
</html>
编辑:感谢下面的回答,我解决了问题。我使用Config API进行了更改:
curl http://localhost:8983/solr/collectionName/config
-H 'Content-Type:application/json' -d '{
"update-queryresponsewriter" : {
"name":"json",
"class":"solr.JSONResponseWriter",
"defaults": {
"name":"application/json; charset=UTF-8"
}
}
}'
请注意,此更改并未立即对我生效,因此您可能需要等待一分钟才能显示更改。
答案 0 :(得分:4)
如示例solrconfig.xml所示,您应该通过删除以下部分来修正 <queryResponseWriter name="json" class="solr.JSONResponseWriter">
<!-- For the purposes of the tutorial, JSON responses are written as
plain text so that they are easy to read in *any* browser.
If you expect a MIME type of "application/json" just remove this override.
-->
<str name="content-type">text/plain; charset=UTF-8</str>
</queryResponseWriter>
:
std::vector<Stuff> vec(knownSize);
int producerIndex = 0;
std::atomic<int> consumerIndex = 0;
没有JSON查看器的现代浏览器会将JSON显示为纯文本,因此除非您想在IE6之类的内容中查看数据,否则您将没事。
通过http://grokbase.com/t/lucene/dev/1372n9jyha/solr-content-type-for-json
发现