+def search_pictures(query):
+ search = Search()
+ # results_parts = []
+ # search_fields = []
+ words = query.split()
+ fieldsets = (
+ (['authors'], True, 8),
+ (['title'], True, 4),
+ (['metadata'], True, 2),
+ (['themes_pl'], False, 1),
+ )
+ # for fields, is_book in fieldsets:
+ # search_fields += fields
+ # results_parts.append(search.search_words(words, search_fields, required=fields, book=is_book, picture=True))
+ query_results = search.search_words(words, fieldsets, picture=True)
+ results = []
+ ids_results = {}
+ # for results_part in results_parts:
+ for result in sorted(PictureResult.aggregate(query_results), reverse=True):
+ picture_id = result.picture_id
+ if picture_id in ids_results:
+ ids_results[picture_id].merge(result)
+ else:
+ results.append(result)
+ ids_results[picture_id] = result