如何使用`pysolr`将JSON文件加载到solr?

时间:2017-04-20 09:58:07

标签: solr pysolr

以下python代码添加了一个文档但没有json内容:

solr_instance = pysolr.Solr('http://192.168.45.153:8983/solr/test', timeout=60)
json_filename = '/path/to/file/test.json'
argws = {
    'commit': 'true',
    'extractOnly': False,
    'Content-Type': 'application/json',
}
with open(json_filename, 'rb') as f:
    solr_instance.extract(f, **argws)
    solr_instance.commit()

从命令行使用curl按预期工作:

$ curl 'http://192.168.45.153:8983/solr/test/update?commit=true' \
     --data-binary @/path/to/file/test.json \
     -H 'Content-Type: application/json'

该文件包含以下内容:

$ cat /cygdrive/w/mist/test.json
-->    [{"x": "a","y": "b"}]

我正在使用pysolr 3.6.0solr 6.5.0

1 个答案:

答案 0 :(得分:1)

extract()方法引用针对ExtractingRequestHandler的请求,该请求用于从富文档(例如PDF等)中提取内容。

您可以使用常规.add方法将已解码的JSON提交给Solr:

import json

solr.add(json.load(json_filename))

..应该有用。