'Allows to execute given function on Database side
(important for server mode)
If ``target_funct==sum`` then given index must have ``run_sum`` method.
:param index_name: index name to perform action.
:param target_funct: target function name (without *run* prefix)
:param \*args: ``*args`` for function
:param \*\*kwargs: ``**kwargs`` for function'

def run(self, index_name, target_funct, *args, **kwargs):

    try:
        ind = self.indexes_names[index_name]
    except KeyError:
        self.__not_opened()
        raise IndexNotFoundException(("Index    `%s`    doesn't    exists" % index_name))
    try:
        funct = getattr(ind, ('run_' + target_funct))
    except AttributeError:
        raise IndexException('Invalid    function    to    run')
    return funct(self, *args, **kwargs)
