def related_ddr(self, term_ids, balanced=False): """Get objects for terms from DDR. Ironic: this uses DDR's REST UI rather than ES. """ return ddr.related_by_topic( term_ids=term_ids, size=5, balanced=balanced )
def ddr_objects(self, size=5): """Get list of objects for terms from DDR. Ironic: this uses DDR's REST UI rather than ES. """ objects = ddr.related_by_topic( term_ids=[term['id'] for term in self.topics()], size=size ) return ddr._balance(objects, size)
def ddr_terms_objects(self, size=100): """Get dict of DDR objects for article's DDR topic terms. Ironic: this uses DDR's REST UI rather than ES. """ if not hasattr(self, '_related_terms_docs'): terms = self.topics() objects = ddr.related_by_topic( term_ids=[term['id'] for term in terms], size=size ) for term in terms: term['objects'] = objects[term['id']] return terms