浏览代码

dont prevent search when backend throws an exception or times out

Nick Sweeting 4 年之前
父节点
当前提交
52429b8d15
共有 2 个文件被更改,包括 5 次插入1 次删除
  1. 1 0
      archivebox/core/mixins.py
  2. 4 1
      archivebox/core/views.py

+ 1 - 0
archivebox/core/mixins.py

@@ -15,6 +15,7 @@ class SearchResultsAdminMixin:
             qsearch = query_search_index(search_term)
             qsearch = query_search_index(search_term)
             qs = qs | qsearch
             qs = qs | qsearch
         except Exception as err:
         except Exception as err:
+            print(f'[!] Error while using search backend: {err.__class__.__name__} {err}')
             messages.add_message(request, messages.WARNING, f'Error from the search backend, only showing results from default admin search fields - Error: {err}')
             messages.add_message(request, messages.WARNING, f'Error from the search backend, only showing results from default admin search fields - Error: {err}')
         
         
         return qs, use_distinct
         return qs, use_distinct

+ 4 - 1
archivebox/core/views.py

@@ -223,7 +223,10 @@ class PublicIndexView(ListView):
         query = self.request.GET.get('q')
         query = self.request.GET.get('q')
         if query and query.strip():
         if query and query.strip():
             qs = qs.filter(Q(title__icontains=query) | Q(url__icontains=query) | Q(timestamp__icontains=query) | Q(tags__name__icontains=query))
             qs = qs.filter(Q(title__icontains=query) | Q(url__icontains=query) | Q(timestamp__icontains=query) | Q(tags__name__icontains=query))
-            qs = qs | query_search_index(query)
+            try:
+                qs = qs | query_search_index(query)
+            except Exception as err:
+                print(f'[!] Error while using search backend: {err.__class__.__name__} {err}')
         return qs
         return qs
 
 
     def get(self, *args, **kwargs):
     def get(self, *args, **kwargs):