src/ldt/ldt/indexation/__init__.py
changeset 601 ae287132c61e
parent 594 bc018d2744f2
child 602 642b3654b8f1
--- a/src/ldt/ldt/indexation/__init__.py	Wed Mar 07 12:44:22 2012 +0100
+++ b/src/ldt/ldt/indexation/__init__.py	Wed Mar 07 12:47:42 2012 +0100
@@ -10,33 +10,37 @@
 ANALYZER.addAnalyzer("abstract", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
 ANALYZER.addAnalyzer("all", lucene.FrenchAnalyzer(lucene.Version.LUCENE_CURRENT))
 
-def get_results_with_context(field, query):
+def get_results_with_context(field, query, content_list=None):
     
     searcher = get_searcher()
     
     try:
         res = get_results_list(field, query, searcher)
         query = get_query_parser(field).parse(query)
-        contexts = [] 
+        contexts = []
+        content_iri_ids = None
+        if content_list is not None :
+            content_iri_ids = [ctt.iri_id for ctt in content_list]
             
         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)     
+            doc = searcher.doc(i.doc)
+            if content_iri_ids is None or (content_iri_ids is not None and doc.get("iri_id") in content_iri_ids) :
+                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