web/ldt/text/utils.py
changeset 21 1a061f244254
parent 9 22ab430e9b64
child 24 9e19b7ae3780
equal deleted inserted replaced
20:20c41a7e2173 21:1a061f244254
     4 from ldt.text.models import *
     4 from ldt.text.models import *
     5 import urllib
     5 import urllib
     6 import datetime
     6 import datetime
     7 import lxml.etree
     7 import lxml.etree
     8 import base64
     8 import base64
       
     9 import lucene
       
    10 from ldt.ldt_utils import STORE
       
    11 from ldt.ldt_utils import ANALYZER
     9 
    12 
    10 __BOOLEAN_DICT = {
    13 __BOOLEAN_DICT = {
    11     'false':False,
    14     'false':False,
    12     'true':True,
    15     'true':True,
    13     '0':False,
    16     '0':False,
    60     creationdate = lxml.etree.SubElement(meta, "created")
    63     creationdate = lxml.etree.SubElement(meta, "created")
    61     updatedate = lxml.etree.SubElement(meta, "modified")
    64     updatedate = lxml.etree.SubElement(meta, "modified")
    62 
    65 
    63     return doc
    66     return doc
    64 
    67 
       
    68 
       
    69 class LdtSearch(object):
       
    70 
       
    71     def query(self, field, query):
       
    72         indexSearcher = lucene.IndexSearcher(STORE)
       
    73         queryParser = lucene.QueryParser(lucene.Version.LUCENE_30, field, lucene.FrenchAnalyzer(lucene.Version.LUCENE_30))
       
    74         queryParser.setDefaultOperator(lucene.QueryParser.Operator.AND)
       
    75         queryObj = queryParser.parse(query)
       
    76         hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER)
       
    77     
       
    78         res = []
       
    79         for hit in hits.scoreDocs:
       
    80             doc = indexSearcher.doc(hit.doc)
       
    81             res.append({"external_id":doc.get("external_id"),"title":doc.get("title")})
       
    82         indexSearcher.close()
       
    83         return res
       
    84 
       
    85     def queryAll(self, query):        
       
    86         return self.query("all", query)
       
    87     
       
    88