目前我在solr中使用XML文件。 我使用带有XPathentityProcessor的DataimportHandler索引xml文件的数据。
现在我想从json文件导入数据。
有什么例子吗?
此致 Sagar的
答案 0 :(得分:7)
您需要的是
curl 'http://localhost:8983/solr/update/json?commit=true' --data-binary @books.json -H 'Content-type:application/json'
取自示例。
答案 1 :(得分:5)
DataImportHandler不允许您使用JSON作为源。唯一的方法是使用可以本机处理JSON的Update Handler。但那必须是the JSON structure Solr expects(哈希数组或命令/哈希哈希)。
答案 2 :(得分:3)
如果您不想使用curl命令,可以直接在浏览器上触发命令并获得所需的结果:
http://localhost:8983/solr/update/json?commit=true --data-binary @books.json -H 'Content-type:application/json'
将json文件放在/ example / exampledocs文件夹中。这是solr中的默认目录路径。 如果您使用的是java或php等,那么您可以使用几个类和方法,然后您不需要像上面那样提及整个命令。那就是您要求的内容吗?
答案 3 :(得分:1)
您还可以通过在curl命令的url中包含?commit = true语句来更新您的文档。
curl -X POST -H "Content-Type: application/json" -u "{usernamne}":"{password}" "https://your_host/solr/your_collection/update/json?commit=true" --data-binary @/path/to/your/data/your_data.json
答案 4 :(得分:0)
您可以使用REST api将数据发送到Solr。请使用此路径:
localhost:8983/solr/simple2/update?commit=true
//(simple2 is the core name and localhost:8983 is server path.)
你必须定义
:content_type => 'application/json'
请求头中的。与它一起使用你可以使用post请求将json文件/数据发送到solr。
有关详细信息,请访问http://geekdirt.com/blog/indexing-in-solr-using-json-and-rest-apis/
答案 5 :(得分:0)
如果你想从json格式导入部分或整个集合,那么还有另一种选择。
我写了一个java工具:https://github.com/freedev/solr-import-export-json
这是一个使用SolrJ
导入和导出Solr集合的Java应用程序。每个文档都必须是一个json对象,并且在导入的文件中,您必须有一个行列表,而每一行都是一个json对象。
{ "id": 1, "date": "20160101T00:00:00", "text": "some text" }
{ "id": 2, "date": "20160102T00:00:00", "text": "some text" }
{ "id": 3, "date": "20160103T00:00:00", "text": "some text" }
我没有尝试使用嵌套文档,json文档的键应该是Solr字段的名称。