如何索引具有webservice內容的solr服務器。將剩餘Web服務的xml輸出索引到solr服務器中
我的web服務輸出看起來像這樣
現在我想指數Solr的serverwith下的XML內容如上圖所示
我怎麼能指數thiss到Apache Solr實現。
如何索引具有webservice內容的solr服務器。將剩餘Web服務的xml輸出索引到solr服務器中
我的web服務輸出看起來像這樣
現在我想指數Solr的serverwith下的XML內容如上圖所示
我怎麼能指數thiss到Apache Solr實現。
請在你喜歡的腳本語言的腳本(Python的對我來說)。我做了一些與數據庫類似的事情,並希望類似的解決方案能夠順利地順利完成。
使用Python:
並像cron-job一樣定期運行此腳本。
您需要兩段代碼:一段查詢您的RESTful服務並獲取響應的主體;另一個將格式化的文檔上傳到Solr。
這段代碼上傳Python對象request_obj給定request_url和Solr的響應被返回作爲Python對象。本地Python對象(由字典(關聯數組),列表,字符串,數字組成)很容易翻譯成JSON(1-2個警告)。
僅將此用作參考。我保證沒有適合你的目的。
不要忘記使用/update/json?wt = python可從Solr 3.3開始使用。您需要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,使用這些優良教程http://www.learningpython.com/2008/05/07/elegant-xml-parsing-using-the-elementtree-module/和http://effbot.org/zone/element.htm
這是一個命令行樣品。
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
您需要鬆散地按照以下步驟爲數據建立索引。
你可以簡單地提供相同的代碼 – pavan
用一些代碼更新我的答案。請記住,Google是你的朋友。 – aitchnyu