将rest web服务的xml输出索引到solr服务器中
如何使用webservice的内容为solr服务器编制索引 我的webservice输出如下所示 现在,我想用xml下的内容为solr服务器编制索引,如上图所示将rest web服务的xml输出索引到solr服务器中,xml,solr,Xml,Solr,如何使用webservice的内容为solr服务器编制索引 我的webservice输出如下所示 现在,我想用xml下的内容为solr服务器编制索引,如上图所示 如何将其索引到apache solr中。您需要大致按照以下步骤为数据编制索引 为要索引的字段配置索引架构。根据上面的示例,您需要classname、packagename和url字段。有关更多详细信息,请参阅 将文档添加到索引中。有关如何执行此操作的详细信息,请参见以下内容之一。 -使用XML/HTTP数据源 用你最喜欢的脚本语
如何将其索引到apache solr中。您需要大致按照以下步骤为数据编制索引
- -使用XML/HTTP数据源
用你最喜欢的脚本语言(Python for me)编写一个脚本。我对数据库做了类似的工作,希望类似的解决方案也能为您带来好处 使用Python:
您将需要两段代码:一段用于查询RESTful服务并获取响应主体;另一个是将格式化文档上载到Solr 这段代码将Python对象request\u obj上传到给定的request\u url,并将solr的响应作为Python对象返回。本机Python对象(由字典(关联数组)、列表、字符串和数字组成)可以轻松地转换为JSON(有1-2条注意事项) 仅用作参考。我保证不适合你的目的 别忘了使用Solr 3.3以后提供的/update/json?wt=python。您需要MultipartPostHandler库
def solr_interface(self,request_url,request_obj):
request=json.dumps(request_obj,indent=4,encoding="cp1252")
opener = urllib2.build_opener(MultipartPostHandler.MultipartPostHandler)
urllib2.install_opener(opener)
req = urllib2.Request(request_url, request)
req.add_header("Content-Type", "application/json")
text_response = urllib2.urlopen(req).read().strip()
return ast.literal_eval(text_response)
至于在Python中解析(和组合)XML,请使用这些优秀的教程和
这是一个命令行示例
from xml.etree import ElementTree as ET
elem =ET.fromstring("<doc><p>This is a block</p><p>This is another block</p></doc>")
for subelement in elem:
... print subelement.text
...
This is a block
This is another block
从xml.etree导入ElementTree作为ET
elem=ET.fromstring(“这是一个块这是另一个块”)
对于元素中的子元素:
... 打印subelement.text
...
这是一个街区
这是另一个街区
用一些代码更新了我的答案。记住,谷歌是你的朋友。