Solr响应中的内容类型

时间:2017-03-21 21:29:33

标签: html json solr

我一直在学习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"
    }
  }
}'

请注意,此更改并未立即对我生效,因此您可能需要等待一分钟才能显示更改。

1 个答案:

答案 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

发现