web/ldt/text/utils.py
changeset 24 9e19b7ae3780
parent 22 83b28fc0d731
parent 21 1a061f244254
--- a/web/ldt/text/utils.py	Thu Dec 16 14:55:25 2010 +0100
+++ b/web/ldt/text/utils.py	Thu Dec 16 15:00:30 2010 +0100
@@ -1,6 +1,8 @@
 from django.conf import settings
+from ldt.ldt_utils import ANALYZER, STORE
 import base64
 import django.core.urlresolvers
+import lucene
 import lxml.etree
 import urllib
 import uuid
@@ -36,3 +38,24 @@
     
     return taglist
 
+
+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)
+    
+