From a2a3df3d19b3f2e095dd556551b34d75b8c6a2f0 Mon Sep 17 00:00:00 2001 From: Riju19 <19.riju@gmail.com> Date: Tue, 19 Mar 2019 11:42:41 +0530 Subject: [PATCH] Search bars handle queries as if they have a * at the end Change-Id: Iac8a6a46e7898edd523e3f7c026cbdd134bbff21 Task: 2260 Signed-off-by: Riju19 <19.riju@gmail.com> --- doc/requirements.txt | 2 +- storyboard/api/v1/search/sqlalchemy_impl.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/requirements.txt b/doc/requirements.txt index 7cefa46d..aea0a6e9 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ # The order of packages is significant, because pip processes them in the order # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -sphinx>=1.1.2 +sphinx<2.0.0 sphinxcontrib-pecanwsme>=0.5 openstackdocstheme diff --git a/storyboard/api/v1/search/sqlalchemy_impl.py b/storyboard/api/v1/search/sqlalchemy_impl.py index 0b54fc2a..48abee76 100644 --- a/storyboard/api/v1/search/sqlalchemy_impl.py +++ b/storyboard/api/v1/search/sqlalchemy_impl.py @@ -29,7 +29,12 @@ class SqlAlchemySearchImpl(search_engine.SearchEngine): def _build_fulltext_search(self, model_cls, query, q, mode=FullTextMode.BOOLEAN): - return query.filter(FullTextSearch(q, model_cls, mode=mode)) + boolean_search_operators = ['+', '-', '~', '<', '>'] + if(q[0] in boolean_search_operators or (q[0] == '"' and q[-1] == '"') + or q[-1] == '*'): + return query.filter(FullTextSearch(q, model_cls, mode=mode)) + + return query.filter(FullTextSearch(q + '*', model_cls, mode=mode)) def _apply_pagination(self, model_cls, query, marker=None, offset=None, limit=None, sort_field='id',