diff -r 65baf3ff7315 -r 9e19b7ae3780 web/ldt/text/utils.py --- 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) + +