merge indexation for possibility to search by group of tagged medias.
--- 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