web/blinkster/ldt/utils.py
changeset 29 cc9b7e14412b
parent 16 146d86480e85
child 35 8b65c9054eac
equal deleted inserted replaced
28:b758351d191f 29:cc9b7e14412b
     7 from Ft.Xml import MarkupWriter
     7 from Ft.Xml import MarkupWriter
     8 import xml.dom
     8 import xml.dom
     9 import xml.dom.minidom
     9 import xml.dom.minidom
    10 import xml.dom.ext
    10 import xml.dom.ext
    11 import xml.xpath
    11 import xml.xpath
    12 import os
    12 import sys
    13 import os.path
       
    14 
       
    15 
    13 
    16 
    14 
    17 class LdtSearch(object):
    15 class LdtSearch(object):
    18 
    16 
    19 	def query(self, field, query):
    17     def query(self, field, query):
    20 		res = []
    18         res = []
    21 		indexSearcher = lucene.IndexSearcher(STORE)
    19         indexSearcher = lucene.IndexSearcher(STORE)
    22 		#queryParser = lucene.MultiFieldQueryParser(["tags","title","abstract"], ANALYZER)
    20         #queryParser = lucene.MultiFieldQueryParser(["tags","title","abstract"], ANALYZER)
    23 		queryParser = lucene.QueryParser(field, lucene.FrenchAnalyzer())
    21         queryParser = lucene.QueryParser(lucene.Version.LUCENE_30, field, lucene.FrenchAnalyzer(lucene.Version.LUCENE_30))
    24 		queryParser.setDefaultOperator(lucene.QueryParser.Operator.AND)
    22         queryParser.setDefaultOperator(lucene.QueryParser.Operator.AND)
    25 		queryObj = queryParser.parse(query)
    23         queryObj = queryParser.parse(query)
    26 		hits = indexSearcher.search(queryObj)
    24         hits = indexSearcher.search(queryObj,50)
    27 		for hit in hits:
    25         for hit in hits.scoreDocs:
    28 			doc = lucene.Hit.cast_(hit).getDocument()
    26             doc = indexSearcher.doc(hit.doc)
    29 			res.append({"iri_id":doc.get("iri_id"),"ensemble_id":doc.get("ensemble_id"),"decoupage_id":doc.get("decoupage_id"), "element_id":doc.get("element_id")})
    27             res.append({"iri_id":doc.get("iri_id"),"ensemble_id":doc.get("ensemble_id"),"decoupage_id":doc.get("decoupage_id"), "element_id":doc.get("element_id")})
    30 		return res
    28         indexSearcher.close()
       
    29         return res
    31 
    30 
    32 	
    31 
    33 	def queryAll(self, query):		
    32     def queryAll(self, query):		
    34 		return self.query("all", query)
    33         return self.query("all", query)
    35 	
    34 
    36 class LdtUtils(object):
    35 class LdtUtils(object):
    37     
    36     
    38     def generateLdt(self, contentList, file, title = u"", author=u"IRI Web", web_url=u"", media_url=""):
    37     def generateLdt(self, contentList, file, title = u"", author=u"IRI Web", web_url=u"", media_url=""):
    39         writer = MarkupWriter(file, indent = u"yes")
    38         writer = MarkupWriter(file, indent = u"yes")
    40         writer.startDocument()
    39         writer.startDocument()
    63         writer.simpleElement(u"edits")
    62         writer.simpleElement(u"edits")
    64         writer.endElement(u"iri")
    63         writer.endElement(u"iri")
    65 
    64 
    66     def generateInit(self, url, method, search=None):
    65     def generateInit(self, url, method, search=None):
    67         
    66         
    68         import xml.dom
       
    69         import xml.dom.ext
       
    70     
    67     
    71         impl = xml.dom.getDOMImplementation()
    68         impl = xml.dom.getDOMImplementation()
    72         doc = impl.createDocument(xml.dom.EMPTY_NAMESPACE, 'iri', None)
    69         doc = impl.createDocument(xml.dom.EMPTY_NAMESPACE, 'iri', None)
    73     
    70     
    74         elementFiles = doc.createElement('files')
    71         elementFiles = doc.createElement('files')