# HG changeset patch # User Thierry Florac # Date 1497447067 -7200 # Node ID dc4ca82098cc45fff1ce2595545db65eede6831d # Parent 01016144130cca5c7232e8b88cf0a04f878603e0 Update test query for Elasticsearch-DSL package diff -r 01016144130c -r dc4ca82098cc src/pyams_content_es/zmi/test.py --- a/src/pyams_content_es/zmi/test.py Tue Jun 06 17:22:31 2017 +0200 +++ b/src/pyams_content_es/zmi/test.py Wed Jun 14 15:31:07 2017 +0200 @@ -9,7 +9,7 @@ # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # - +from onf_website.shared.news import WfNewsEvent __docformat__ = 'restructuredtext' @@ -21,6 +21,7 @@ from zope.intid.interfaces import IIntIds # import packages +from elasticsearch_dsl import Search, A from pyams_utils.registry import get_utility from pyramid.response import Response from pyramid.view import view_config @@ -38,18 +39,23 @@ # .size(100) # return query.execute(fields=['title.fr']).raw - query = client.query() \ - .filter_term('_type', 'WfNewsEvent') \ - .filter_terms('workflow.status', ['published', 'retiring']) \ - .add_term_aggregate('status', 'workflow.status') \ - .add_date_aggregate('wf_date', 'workflow.date') \ - .size(100) + # query = client.query() \ + # .filter_term('_type', 'WfNewsEvent') \ + # .filter_terms('workflow.status', ['published', 'retiring']) \ + # .add_term_aggregate('status', 'workflow.status') \ + # .add_date_aggregate('wf_date', 'workflow.date') \ + # .size(100) + + query = Search(using=client.es).query('term', **{'_type': WfNewsEvent.__name__}) \ + .query('terms', **{'workflow.status': ['published', 'retiring']}) \ + .source(['internal_id']) + agg = A('terms', field='workflow.status') + query.aggs.bucket('status', agg) intids = get_utility(IIntIds) - for result in query.execute(fields=['internal_id']): + for result in query.execute(): if not result.internal_id: continue - target = intids.queryObject(result.internal_id[0]) + target = intids.queryObject(result.internal_id) yield II18n(target).query_attribute('title').encode() + b'\n' - # return pformat(query.execute(fields=['title.fr', 'workflow.status', 'internal_id']).raw) return Response(app_iter=get_response())