如何使用 `pysolr` 将 JSON 文件加载到 solr?
how to load a JSON file to solr using `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.0
和 solr 6.5.0
extract()
方法是指对ExtractingRequestHandler的请求,用于从富文档(如PDF等)中提取内容。
您可以使用常规的.add
方法将解码后的JSON提交给Solr:
import json
solr.add(json.load(json_filename))
..应该可以。
以下 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.0
和 solr 6.5.0
extract()
方法是指对ExtractingRequestHandler的请求,用于从富文档(如PDF等)中提取内容。
您可以使用常规的.add
方法将解码后的JSON提交给Solr:
import json
solr.add(json.load(json_filename))
..应该可以。