# HG changeset patch # User ymh # Date 1331055441 -3600 # Node ID bc018d2744f21f8fb384ebe2e0400d6b44edcb91 # Parent c8175745fcac9b35577076f98001d28e3d790bf1 release indexer diff -r c8175745fcac -r bc018d2744f2 src/ldt/ldt/indexation/__init__.py --- a/src/ldt/ldt/indexation/__init__.py Tue Mar 06 00:11:43 2012 +0100 +++ b/src/ldt/ldt/indexation/__init__.py Tue Mar 06 18:37:21 2012 +0100 @@ -13,64 +13,72 @@ def get_results_with_context(field, query): searcher = get_searcher() - res = get_results_list(field, query, searcher) - query = get_query_parser(field).parse(query) - contexts = [] - - for i in res: - doc = searcher.doc(i.doc) - ids = {"iri_id":doc.get("iri_id"), "ensemble_id":doc.get("ensemble_id"), "decoupage_id":doc.get("decoupage_id"), "element_id":doc.get("element_id"), "project_id":doc.get("project_id")} - score = i.score - title = doc.getField('title').stringValue() - desc = doc.getField('abstract').stringValue() - tags = doc.getField('tags').stringValue() - begin = doc.getField('begin').stringValue() - duration = doc.getField('duration').stringValue() - - ids['context'] = desc - ids['title'] = title - ids['tags'] = tags - ids['score'] = score - ids['lucene_id'] = i.doc - ids['begin'] = begin - ids['duration'] = duration - contexts.append(ids) - searcher.close() + try: + res = get_results_list(field, query, searcher) + query = get_query_parser(field).parse(query) + contexts = [] + + for i in res: + doc = searcher.doc(i.doc) + ids = {"iri_id":doc.get("iri_id"), "ensemble_id":doc.get("ensemble_id"), "decoupage_id":doc.get("decoupage_id"), "element_id":doc.get("element_id"), "project_id":doc.get("project_id")} + score = i.score + title = doc.getField('title').stringValue() + desc = doc.getField('abstract').stringValue() + tags = doc.getField('tags').stringValue() + begin = doc.getField('begin').stringValue() + duration = doc.getField('duration').stringValue() + + ids['context'] = desc + ids['title'] = title + ids['tags'] = tags + ids['score'] = score + ids['lucene_id'] = i.doc + ids['begin'] = begin + ids['duration'] = duration + contexts.append(ids) + finally: + searcher.close() return contexts def get_results_list(field, query, indexSearcher=None): + searcher_allocated = False if indexSearcher is None: - indexSearcher = get_searcher() - queryParser = get_query_parser(field) - queryObj = queryParser.parse(query) - hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER) - + indexSearcher, searcher_allocated = get_searcher(), True + try: + queryParser = get_query_parser(field) + queryObj = queryParser.parse(query) + hits = indexSearcher.search(queryObj, settings.LDT_MAX_SEARCH_NUMBER) + finally: + if searcher_allocated: + indexSearcher.close() return hits.scoreDocs def highlight_documents(results_list, query, field): searcher = get_searcher() - analyzer = lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT) - formatter = lucene.SimpleHTMLFormatter('', '') - query = get_query_parser(field).parse(query) - highlighter = lucene.Highlighter(formatter, lucene.QueryScorer (query)) - - for project in results_list: - for segment in project['list']: - lucene_doc = searcher.doc(segment.lucene_id) - segment.context = get_highlighted_text(lucene_doc, analyzer, highlighter, 'abstract') - tags = get_highlighted_text(lucene_doc, analyzer, highlighter, 'tags') - segment.title = get_highlighted_text(lucene_doc, analyzer, highlighter, 'title') - - if segment.context == u'': - segment.context = lucene_doc.getField('abstract').stringValue() - if tags == u'': - tags = lucene_doc.getField('tags').stringValue() - if segment.title == u'': - segment.title = lucene_doc.getField('title').stringValue() + try: + analyzer = lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT) + formatter = lucene.SimpleHTMLFormatter('', '') + query = get_query_parser(field).parse(query) + highlighter = lucene.Highlighter(formatter, lucene.QueryScorer (query)) + + for project in results_list: + for segment in project['list']: + lucene_doc = searcher.doc(segment.lucene_id) + segment.context = get_highlighted_text(lucene_doc, analyzer, highlighter, 'abstract') + tags = get_highlighted_text(lucene_doc, analyzer, highlighter, 'tags') + segment.title = get_highlighted_text(lucene_doc, analyzer, highlighter, 'title') - segment.context_tags = tags[tags.find(';')+1:] - + if segment.context == u'': + segment.context = lucene_doc.getField('abstract').stringValue() + if tags == u'': + tags = lucene_doc.getField('tags').stringValue() + if segment.title == u'': + segment.title = lucene_doc.getField('title').stringValue() + + segment.context_tags = tags[tags.find(';')+1:] + finally: + searcher.close() return results_list def get_highlighted_text(doc, analyzer, highlighter, field): diff -r c8175745fcac -r bc018d2744f2 web/ldtplatform/config.py.tmpl --- a/web/ldtplatform/config.py.tmpl Tue Mar 06 00:11:43 2012 +0100 +++ b/web/ldtplatform/config.py.tmpl Tue Mar 06 18:37:21 2012 +0100 @@ -72,7 +72,7 @@ MANAGERS = ADMINS -GOOGLE_ANALYTICS_CODE = 'UA-1234-1' +#GOOGLE_ANALYTICS_CODE = 'UA-1234-1' EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com'