1. A method of processing video fingerprint data in a cloud infrastructure, the method comprising: analysing video data; extracting features from the video data to form the video fingerprint data, the video fingerprint data taking the form of multidimensional vectors; computing meta data and data points from the multidimensional vectors; inputting the meta data and the data points from the multidimensional vectors into a distributed index having multiple levels, the distributed index comprising a directing tree and leaf nodes; storing the meta data relating to the multidimensional vectors in the directing tree; storing the data points computed from the multidimensional vectors in the leaf nodes; scaling the distributed index by increasing or decreasing a number of the leaf nodes in the distributed index size depending upon a number of the multidimensional vectors to be stored; distributing the leaf nodes across at least one client system; searching for a nearest neighbour of a data point; inserting a root node of the directing tree into a priority queue; determining a closest distance node from the priority queue to a query node; if the closest distance node is a leaf node or a bin, adding the closest distance node to a list of preferred bins; if the closest distance node is not a leaf node or a bin, determining a distance from the query node to a child node wherein the child node is a child of the closest distance node and adding the child node to the priority queue; and terminating if a maximum number of bins is reached or the priority queue is empty, wherein the directing tree contains no data points but contains the meta data computed from the multidimensional vectors; and the leaf nodes contain data points which are apportioned to each respective leaf node in a predetermined manner so that each of the leaf nodes contains data points that are relatively close to other data points in the same leaf node as compared to the data points in other leaf nodes.