src/ldt/ldt/indexation/__init__.py
changeset 205 49c9890dce4a
parent 198 202107fff250
child 349 63f729155d81
equal deleted inserted replaced
200:a38c4759ce8a 205:49c9890dce4a
    41     hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER)
    41     hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER)
    42     
    42     
    43     return hits.scoreDocs
    43     return hits.scoreDocs
    44 
    44 
    45 def highlight_documents(doc_list, query, field):
    45 def highlight_documents(doc_list, query, field):
       
    46     searcher = get_searcher()
    46     analyzer = lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT)
    47     analyzer = lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT)
    47     searcher = get_searcher()
       
    48     formatter = lucene.SimpleHTMLFormatter('<span class="highlight">', '</span>')
    48     formatter = lucene.SimpleHTMLFormatter('<span class="highlight">', '</span>')
    49     query = get_query_parser(field).parse(query)
    49     query = get_query_parser(field).parse(query)
    50     highlighter = lucene.Highlighter(formatter, lucene.QueryScorer (query))
    50     highlighter = lucene.Highlighter(formatter, lucene.QueryScorer (query))
    51     
       
    52     import logging
       
    53     
    51     
    54     for project in doc_list:
    52     for project in doc_list:
    55         for segment in project['list']:
    53         for segment in project['list']:
    56             lucene_doc = searcher.doc(segment['lucene_id'])
    54             lucene_doc = searcher.doc(segment['lucene_id'])
    57             segment['context'] = get_highlighted_text(lucene_doc, analyzer, highlighter, 'abstract')
    55             segment['context'] = get_highlighted_text(lucene_doc, analyzer, highlighter, 'abstract')
    63             if tags == u'':
    61             if tags == u'':
    64                 tags = lucene_doc.getField('tags').stringValue()
    62                 tags = lucene_doc.getField('tags').stringValue()
    65             if segment['title'] == u'':
    63             if segment['title'] == u'':
    66                 segment['title'] = lucene_doc.getField('title').stringValue() 
    64                 segment['title'] = lucene_doc.getField('title').stringValue() 
    67                 
    65                 
    68             segment['tags'] = tags[tags.find(';')+1:]
    66             segment['tags'] = tags[tags.find(';')+1:]          
    69                 
       
    70             
       
    71             
    67             
    72     return doc_list    
    68     return doc_list    
    73 
    69 
    74 def get_highlighted_text(doc, analyzer, highlighter, field):
    70 def get_highlighted_text(doc, analyzer, highlighter, field):
    75     res = doc.getField(field).stringValue()
    71     res = doc.getField(field).stringValue()