def _modify_params(self, params, only_count=False): if only_count: params["rows"] = 0 elif "rows" not in params: params["rows"] = DEFAULT_ROWS if self._fq: params["fq"] = make_fq(self._fq) if "fl" not in params: params["fl"] = ("*", "score") # elif params.get('group') and 'group.field' in params \ # and params['group.field'] not in params['fl']: # params['fl'] = params['fl'] + (params['group.field'],) # elif 'score' not in params['fl']: # params['fl'] = params['fl'] + ('score',) # TODO: exclude filters for facet queries too if "facet.field" in params: for i, facet_field in enumerate(params["facet.field"]): if hasattr(self.searcher, "multi_valued_fields") and facet_field in self.searcher.multi_valued_fields: params["facet.field"][i] = facet_field else: params["facet.field"][i] = "{!ex=%s}%s" % (facet_field, facet_field) # set default params from searcher for p, v in self.searcher.default_params.items(): if p not in params: params[p] = v return params
def _delete(self, solr, id=None, *args, **kwargs): commit = kwargs.pop('commit', True) q = None if args or kwargs: q = make_fq(X(*args, **kwargs)) solr.delete(id, q, commit=commit)