def filter_by(self, query, conditions, order_criteria=None):
"""
:param query: Search object
:type query: elasticsearch.Search
:param conditions: conditions dictionary
:type conditions: dict
:param order_criteria: optional order criteria
:type order_criteria: list
:return: modified query
:rtype: elasticsearch.Search
"""
expressions = self._build_filter_expressions(conditions, None)
if expressions is None:
return query
if order_criteria and '_score' not in order_criteria and '-_score' not in order_criteria:
return query.update_from_dict({'query': {'constant_score': {'filter': expressions}}})
return query.update_from_dict({'query': expressions})
评论列表
文章目录