Merge with d2e8ae250f6ca7460ed8f055e95a2531cb8bc6dc
authorcavaliet
Wed, 07 Mar 2012 12:44:22 +0100
changeset 600 12b45313f9c9
parent 599 5207abea900d (current diff)
parent 597 d2e8ae250f6c (diff)
child 601 ae287132c61e
Merge with d2e8ae250f6ca7460ed8f055e95a2531cb8bc6dc
--- a/.hgtags	Wed Mar 07 12:43:58 2012 +0100
+++ b/.hgtags	Wed Mar 07 12:44:22 2012 +0100
@@ -45,3 +45,6 @@
 faf94ed5367ba1c26b2b906fc595bdf304cc87a0 V01.04
 faf94ed5367ba1c26b2b906fc595bdf304cc87a0 V01.04
 4f99c1aeba7c9fdfb4c9611973f4c2ff5c6f2ca0 V01.04
+bc018d2744f21f8fb384ebe2e0400d6b44edcb91 V01.05
+bc018d2744f21f8fb384ebe2e0400d6b44edcb91 V01.05
+d7c1c1f04694d5eddc691d0d08d6c73cf4c08567 V01.05
--- a/src/ldt/ldt/__init__.py	Wed Mar 07 12:43:58 2012 +0100
+++ b/src/ldt/ldt/__init__.py	Wed Mar 07 12:44:22 2012 +0100
@@ -1,4 +1,4 @@
-VERSION = (1, 4, 0, "final", 0)
+VERSION = (1, 5, 0, "final", 0)
 
 
 def get_version():
--- a/src/ldt/ldt/indexation/__init__.py	Wed Mar 07 12:43:58 2012 +0100
+++ b/src/ldt/ldt/indexation/__init__.py	Wed Mar 07 12:44:22 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	Wed Mar 07 12:43:58 2012 +0100
+++ b/web/ldtplatform/config.py.tmpl	Wed Mar 07 12:44:22 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'