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