--- 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('<span class="highlight">', '</span>')
- 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('<span class="highlight">', '</span>')
+ 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):
--- 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'