web/ldt/text/utils.py
changeset 24 9e19b7ae3780
parent 22 83b28fc0d731
parent 21 1a061f244254
equal deleted inserted replaced
23:65baf3ff7315 24:9e19b7ae3780
     1 from django.conf import settings
     1 from django.conf import settings
       
     2 from ldt.ldt_utils import ANALYZER, STORE
     2 import base64
     3 import base64
     3 import django.core.urlresolvers
     4 import django.core.urlresolvers
       
     5 import lucene
     4 import lxml.etree
     6 import lxml.etree
     5 import urllib
     7 import urllib
     6 import uuid
     8 import uuid
     7 
     9 
     8 __BOOLEAN_DICT = {
    10 __BOOLEAN_DICT = {
    34         nlist.append(tag)
    36         nlist.append(tag)
    35     taglist = dict().fromkeys(nlist).keys()    
    37     taglist = dict().fromkeys(nlist).keys()    
    36     
    38     
    37     return taglist
    39     return taglist
    38 
    40 
       
    41 
       
    42 class LdtSearch(object):
       
    43 
       
    44     def query(self, field, query):
       
    45         indexSearcher = lucene.IndexSearcher(STORE)
       
    46         queryParser = lucene.QueryParser(lucene.Version.LUCENE_30, field, lucene.FrenchAnalyzer(lucene.Version.LUCENE_30))
       
    47         queryParser.setDefaultOperator(lucene.QueryParser.Operator.AND)
       
    48         queryObj = queryParser.parse(query)
       
    49         hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER)
       
    50     
       
    51         res = []
       
    52         for hit in hits.scoreDocs:
       
    53             doc = indexSearcher.doc(hit.doc)
       
    54             res.append({"external_id":doc.get("external_id"),"title":doc.get("title")})
       
    55         indexSearcher.close()
       
    56         return res
       
    57 
       
    58     def queryAll(self, query):        
       
    59         return self.query("all", query)
       
    60     
       
    61