def search(self, model_manager, queries, fields=None, page=1, per_page=10): fq = "+type:%s" % model_manager.model.__name__ start = per_page * (page-1) results = SolrConnection.search(self.url, queries, fields, fq=fq, start=start, rows=per_page) ids = [ self.instance_pk(r["id"]) for r in results ] instances = ids and model_manager.filter(id__in=ids) or [] return {"hits":results.hits, "object_list":instances}
def delete(self, instance): doc_id = self.doc_id(instance) SolrConnection.delete(self.url, doc_id)
def add_doc(self, instance, data): doc = dict(data) doc["type"] = instance.__class__.__name__ doc["id"] = self.doc_id(instance) SolrConnection.add(self.url, [doc])