2016-04-14 131 views
0

我是solr的初学者,我试图检索我的集群中所有文档的所有id。使用python请求请求solr

http://10.126.10.10:8980/solr/cineinfo/select?fl=mom_i&q=*:* 

当我打这个网址我得到这样的响应:

<response> 
<lst name="responseHeader"> 
<int name="status">0</int> 
<int name="QTime">0</int> 
<lst name="params"> 
<str name="q">*:*</str> 
<str name="fl">mom_i</str> 
</lst> 
</lst> 
<result name="response" numFound="1380" start="0"> 
<doc> 
<int name="mom_i">2730232</int> 
</doc> 
<doc> 
<int name="mom_i">2034019</int> 
</doc> 
<doc> 
<int name="mom_i">2022020</int> 
</doc> 
<doc> 
<int name="mom_i">2000015</int> 
</doc> 
<doc> 
<int name="mom_i">2000025</int> 
</doc> 
<doc> 
<int name="mom_i">2100022</int> 
</doc> 
<doc> 
<int name="mom_i">2000615</int> 
</doc> 
<doc> 
<int name="mom_i">2400027</int> 
</doc> 
<doc> 
<int name="mom_i">2020029</int> 
</doc> 
<doc> 
<int name="mom_i">2000128</int> 
</doc> 
</result> 
</response> 

我想申请使用python一个SOLR集群。所以,我做了一个函数来获取所有mom_i:

def get_all_mom(number_of_document, solr_url = _solr_url): 
    headers = {'content-type': "application/json" } 

    json_query = { 
       'query': '*:*', 
       'fl':'mom_i', 
       'rows': number_of_document 
      } 
    response = requests.post(solr_url, data=json.dumps(json_query), headers=headers) 
    response_json = response.json() 
    print response_json 
    return response_json 

问题是,当我打电话,我没有,结果我在浏览器中得到的功能我有一个错误信息是:

{u'responseHeader': {u'status': 400, u'QTime': 0, u'params': {u'json': u'{"query": "*:*", "rows": "1380"}'}}, u'error': {u'msg': u'Unknown top-level key in JSON request : fl', u'code': 400}} 

如果你们可以帮我弄清楚它来自哪里。

+0

是mpm_i还是mom_i in fl? –

+0

重新键入当它的mom_i我编辑我的职务 – mel

+0

json_query =抱歉,我犯了一个错误{ 查询: '*:*', FL: 'mom_i', 行:10 } ....试试这个... –

回答

1

书链接列表指出,需要在JSON要发送的所有参数...

它展示如何将它们添加在JSON

Json API Parameter name mapping

这说明什么可供选择JSON API Parameterstandard request parameter