Search filter

This commit is contained in:
Simon
2018-11-16 16:49:23 -05:00
parent a461b22ffc
commit 6e80791264
6 changed files with 61 additions and 14 deletions

View File

@@ -5,6 +5,12 @@ import os
import ujson
from apscheduler.schedulers.background import BackgroundScheduler
from search.filter import SearchFilter
class InvalidQueryException(Exception):
pass
class IndexingError(Exception):
pass
@@ -49,6 +55,7 @@ class ElasticSearchEngine(SearchEngine):
super().__init__()
self.index_name = index_name
self.es = elasticsearch.Elasticsearch()
self.filter = SearchFilter()
if not self.es.indices.exists(self.index_name):
self.init()
@@ -165,6 +172,10 @@ class ElasticSearchEngine(SearchEngine):
def search(self, query, page, per_page, sort_order, extensions, size_min, size_max, match_all, fields, date_min,
date_max) -> {}:
if self.filter.should_block(query):
raise InvalidQueryException("One or more terms in your query is blocked by the search filter. "
"This incident has been reported.")
filters = []
if extensions:
filters.append({"terms": {"ext": extensions}})