diff options
Diffstat (limited to 'service/pixelated')
-rw-r--r-- | service/pixelated/adapter/search/contacts.py | 16 | ||||
-rw-r--r-- | service/pixelated/resources/contacts_resource.py | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/service/pixelated/adapter/search/contacts.py b/service/pixelated/adapter/search/contacts.py index 0729e146..d981e0bb 100644 --- a/service/pixelated/adapter/search/contacts.py +++ b/service/pixelated/adapter/search/contacts.py @@ -44,9 +44,13 @@ def search_addresses(searcher, query): results = [] for field in ['to', 'cc', 'bcc', 'sender']: query_parser = QueryParser(field, searcher.schema) - results.append(searcher.search(query_parser.parse("*%s*" % query), - limit=None, - mask=restrict_q, - groupedby=sorting.FieldFacet(field, - allow_overlap=True)).groups()) - return flatten(results) + results.append( + searcher.search( + query_parser.parse("*%s*" % query), + limit=None, + mask=restrict_q, + groupedby=sorting.FieldFacet( + field, + allow_overlap=True), + terms=True).matched_terms()) + return [address[1] for address in flatten(results)] diff --git a/service/pixelated/resources/contacts_resource.py b/service/pixelated/resources/contacts_resource.py index c9b81f54..43155774 100644 --- a/service/pixelated/resources/contacts_resource.py +++ b/service/pixelated/resources/contacts_resource.py @@ -29,7 +29,7 @@ class ContactsResource(Resource): self._search_engine = search_engine def render_GET(self, request): - query = request.args.get('q', ['']) + query = request.args.get('q', [''])[-1] d = deferToThread(lambda: self._search_engine.contacts(query)) d.addCallback(lambda tags: respond_json_deferred(tags, request)) |