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') |