--- a/ForgeDiscussion/forgediscussion/controllers/root.py
+++ b/ForgeDiscussion/forgediscussion/controllers/root.py
@@ -1,3 +1,4 @@
+import re
import json
import logging
import pymongo
@@ -15,7 +16,7 @@
from allura.lib.security import require_access, has_access, require_authenticated
from allura.model import Feed
-from allura.lib.search import search
+from allura.lib.search import search, SearchError
from allura.lib import helpers as h
from allura.lib.utils import AntiSpam
from allura.lib.decorators import require_post
@@ -119,19 +120,24 @@
if project:
redirect(c.project.url() + 'search?' + urlencode(dict(q=q, history=history)))
results = []
+ search_error = None
count=0
limit, page, start = g.handle_paging(limit, page, default=25)
if not q:
q = ''
else:
- results = search(
- q, rows=limit, start=start,
- fq=[
- 'is_history_b:%s' % history,
- 'project_id_s:%s' % c.project._id,
- 'mount_point_s:%s'% c.app.config.options.mount_point,
- '-deleted_b:true'],
- short_timeout=True)
+ try:
+ results = search(
+ q, rows=limit, start=start,
+ fq=[
+ 'is_history_b:%s' % history,
+ 'project_id_s:%s' % c.project._id,
+ 'mount_point_s:%s'% c.app.config.options.mount_point,
+ '-deleted_b:true'],
+ short_timeout=True,
+ ignore_errors=False)
+ except SearchError as e:
+ search_error = e
if results: count=results.hits
c.search_results = self.W.search_results
if results is not None:
@@ -142,7 +148,7 @@
p = model.ForumPost.query.get(_id=_id)
doc['url_paginated'] = p.url_paginated()
return dict(q=q, history=history, results=results or [],
- count=count, limit=limit, page=page)
+ count=count, limit=limit, page=page, search_error=search_error)
@expose('jinja:allura:templates/markdown_syntax.html')
def markdown_syntax(self):