@@ -243,6 +243,14 @@ def _do_search(self, sort_by=None):
243
243
if realm_query :
244
244
query = query .filter (realm_query )
245
245
246
+ # boosting
247
+ query = query .boost_relevancy (5 , realm = "ticket" )\
248
+ .boost_relevancy (5 , status = "new" )\
249
+ .boost_relevancy (5 , status = "assigned" )\
250
+ .boost_relevancy (10 , status = "reopened" )\
251
+ .boost_relevancy (3 , status = "reviewing" )\
252
+ .boost_relevancy (5 , status = "accepted" )
253
+
246
254
author_query = self ._build_author_filter (si )
247
255
if author_query :
248
256
query = query .filter (author_query )
@@ -257,6 +265,7 @@ def _do_search(self, sort_by=None):
257
265
return query .paginate (start = self .page_start , rows = self .page_size )\
258
266
.highlight ('oneline' ,
259
267
** {'simple.pre' :'<span class="highlight">' ,
268
+ 'snippets' : 3 ,
260
269
'simple.post' :'</span>' })\
261
270
.highlight ('title' ,
262
271
** {'simple.pre' :'<span class="highlight">' ,
@@ -286,7 +295,7 @@ def _docs(self, query):
286
295
class FullTextSearchObject (object ):
287
296
'''Minimal behaviour class to store documents going to/comping from Solr.
288
297
'''
289
- def __init__ (self , project , realm , id = None , score = None ,
298
+ def __init__ (self , project , realm , id = None , score = None , status = None ,
290
299
title = None , author = None , changed = None , created = None ,
291
300
oneline = None , involved = None , popularity = None , comments = None ,
292
301
parent_id = None , solr_highlights = None , ** kwarg ):
@@ -307,6 +316,11 @@ def __init__(self, project, realm, id=None, score=None,
307
316
self .id = id
308
317
self .score = score
309
318
self .parent_id = parent_id
319
+ self .status = status
320
+
321
+ @property
322
+ def closed (self ):
323
+ return self .status == 'closed'
310
324
311
325
@property
312
326
def title (self ):
0 commit comments