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