web/ldt/text/utils.py
changeset 21 1a061f244254
parent 9 22ab430e9b64
child 24 9e19b7ae3780
--- a/web/ldt/text/utils.py	Fri Nov 19 18:14:02 2010 +0100
+++ b/web/ldt/text/utils.py	Tue Nov 23 17:54:36 2010 +0100
@@ -6,6 +6,9 @@
 import datetime
 import lxml.etree
 import base64
+import lucene
+from ldt.ldt_utils import STORE
+from ldt.ldt_utils import ANALYZER
 
 __BOOLEAN_DICT = {
     'false':False,
@@ -62,3 +65,24 @@
 
     return doc
 
+
+class LdtSearch(object):
+
+    def query(self, field, query):
+        indexSearcher = lucene.IndexSearcher(STORE)
+        queryParser = lucene.QueryParser(lucene.Version.LUCENE_30, field, lucene.FrenchAnalyzer(lucene.Version.LUCENE_30))
+        queryParser.setDefaultOperator(lucene.QueryParser.Operator.AND)
+        queryObj = queryParser.parse(query)
+        hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER)
+    
+        res = []
+        for hit in hits.scoreDocs:
+            doc = indexSearcher.doc(hit.doc)
+            res.append({"external_id":doc.get("external_id"),"title":doc.get("title")})
+        indexSearcher.close()
+        return res
+
+    def queryAll(self, query):        
+        return self.query("all", query)
+    
+