使用python请求请求solr

时间:2016-04-14 14:02:28

标签: python solr request

我是solr的初学者,我正在尝试检索群集中所有文档的所有ID。

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}}

如果你们能帮助我找出它的来源。

1 个答案:

答案 0 :(得分:1)

书籍链接列出了需要在json中发送的所有参数...

它展示了如何在JSON

中添加它们

Json API Parameter name mapping

它显示了JSON API Parameter standard request parameter中可用的选项。