# HG changeset patch # User Thierry Florac # Date 1595234553 -7200 # Node ID 1945b374d388e11255482c728a72fbf41595d26b # Parent e48a3850c17a47fd09ed94d48f24b018798bc622 Updated advanced search query diff -r e48a3850c17a -r 1945b374d388 src/pyams_content_es/root/zmi/search.py --- a/src/pyams_content_es/root/zmi/search.py Sun Jul 19 02:11:57 2020 +0200 +++ b/src/pyams_content_es/root/zmi/search.py Mon Jul 20 10:42:33 2020 +0200 @@ -101,19 +101,13 @@ else: fulltext = data.get('fulltext', False) if fulltext: - params &= Q('simple_query_string', query=query) + params &= Q('simple_query_string', + query=query) else: - negotiator = get_utility(INegotiator) - query_params = Q('bool') - for lang in {self.request.registry.settings.get('pyramid.default_locale_name', - 'en'), - self.request.locale_name, - negotiator.server_language} | negotiator.offered_languages: - query_params |= Q('match', **{'title.{}'.format(lang): query}) - query_params |= Q('match', **{'short_name.{}'.format(lang): query}) - query_params |= Q('match', **{'header.{}'.format(lang): query}) - query_params |= Q('match', **{'description.{}'.format(lang): query}) - params &= query_params + params &= Q('simple_query_string', + query=query, + fields=['title.*', 'short_name.*', 'header.*', 'description.*'], + default_operator='and') if data.get('owner'): params &= Q('term', owner_id=data['owner']) if data.get('created_after'): diff -r e48a3850c17a -r 1945b374d388 src/pyams_content_es/shared/zmi/search.py --- a/src/pyams_content_es/shared/zmi/search.py Sun Jul 19 02:11:57 2020 +0200 +++ b/src/pyams_content_es/shared/zmi/search.py Mon Jul 20 10:42:33 2020 +0200 @@ -27,7 +27,6 @@ SharedToolAdvancedSearchForm, SharedToolAdvancedSearchResultsView, \ SharedToolAdvancedSearchView from pyams_form.interfaces.form import ISearchFormFactory -from pyams_i18n.interfaces import INegotiator from pyams_sequence.interfaces import ISequentialIntIds from pyams_sequence.reference import get_last_version from pyams_skin.interfaces import IContentSearch @@ -101,19 +100,13 @@ else: fulltext = data.get('fulltext', False) if fulltext: - params &= Q('simple_query_string', query=query) + params &= Q('simple_query_string', + query=query) else: - negotiator = get_utility(INegotiator) - query_params = Q('bool') - for lang in {self.request.registry.settings.get('pyramid.default_locale_name', - 'en'), - self.request.locale_name, - negotiator.server_language} | negotiator.offered_languages: - query_params |= Q('match', **{'title.{}'.format(lang): query}) - query_params |= Q('match', **{'short_name.{}'.format(lang): query}) - query_params |= Q('match', **{'header.{}'.format(lang): query}) - query_params |= Q('match', **{'description.{}'.format(lang): query}) - params &= query_params + params &= Q('simple_query_string', + query=query, + fields=['title.*', 'short_name.*', 'header.*', 'description.*'], + default_operator='and') if data.get('owner'): params &= Q('term', owner_id=data['owner']) if data.get('status'):