def save(self, doc):
        if doc.id:
            return self.update(doc)
        else:
            return self.insert(doc)
def get_clusters(self):
        """!
        @return (list) Allocated clusters where each cluster is represented by list of indexes of points from dataset,
                        for example, two cluster may have following representation [[0, 1, 4], [2, 3, 5, 6]].