A method of processing a search query to perform a search to find a separation between two nodes (s, t) in a network of interconnected nodes, the method comprising: receiving at a computer device a search query in the form of a digital message, the query identifying a source node (s) and a target node (t) in the network of interconnected nodes; and executing at the computer device an application for generating a search result, the application performing operations of: accessing a data structure from a memory of the computing device which has been generated by: selecting a set of at least two nodes as landmark nodes (u1, u2, u3) from the interconnected nodes of the network using a selection scheme; for each of the at least two landmark nodes (u1, u2, u3) in the set, generating a path tree that indicates a separation between the respective landmark node (u1, u2, u3), as a root, and each of a number of the plurality of non-landmark nodes (vl-v7) of the interconnected nodes of the network not being selected as landmark nodes, the path tree for each landmark node (u1, u2, u3) representing a data structure that links the number of non-landmark nodes (vl-v7) to the respective landmark node (u1, u2, u3), as the root; and storing each generated path tree in the data structure, wherein the generating is configured to limit each of said plurality of non-landmark nodes (vl-v7) to being included in no more than a predetermined number (r) of path trees; identifying the landmark nodes (u1, u2, u3) in the accessed data structure having at least one of the source node (s) and the target node (t) in their path tree; and determining a search result related to the path tree of the identified landmark nodes (u1, u2, u3). receiving at a computer device a search query in the form of a digital message, the query identifying a source node (s) and a target node (t) in the network of interconnected nodes; and executing at the computer device an application for generating a search result, the application performing operations of: accessing a data structure from a memory of the computing device which has been generated by: selecting a set of at least two nodes as landmark nodes (u1, u2, u3) from the interconnected nodes of the network using a selection scheme; for each of the at least two landmark nodes (u1, u2, u3) in the set, generating a path tree that indicates a separation between the respective landmark node (u1, u2, u3), as a root, and each of a number of the plurality of non-landmark nodes (vl-v7) of the interconnected nodes of the network not being selected as landmark nodes, the path tree for each landmark node (u1, u2, u3) representing a data structure that links the number of non-landmark nodes (vl-v7) to the respective landmark node (u1, u2, u3), as the root; and storing each generated path tree in the data structure, wherein the generating is configured to limit each of said plurality of non-landmark nodes (vl-v7) to being included in no more than a predetermined number (r) of path trees; identifying the landmark nodes (u1, u2, u3) in the accessed data structure having at least one of the source node (s) and the target node (t) in their path tree; and determining a search result related to the path tree of the identified landmark nodes (u1, u2, u3). accessing a data structure from a memory of the computing device which has been generated by: selecting a set of at least two nodes as landmark nodes (u1, u2, u3) from the interconnected nodes of the network using a selection scheme; for each of the at least two landmark nodes (u1, u2, u3) in the set, generating a path tree that indicates a separation between the respective landmark node (u1, u2, u3), as a root, and each of a number of the plurality of non-landmark nodes (vl-v7) of the interconnected nodes of the network not being selected as landmark nodes, the path tree for each landmark node (u1, u2, u3) representing a data structure that links the number of non-landmark nodes (vl-v7) to the respective landmark node (u1, u2, u3), as the root; and storing each generated path tree in the data structure, wherein the generating is configured to limit each of said plurality of non-landmark nodes (vl-v7) to being included in no more than a predetermined number (r) of path trees; selecting a set of at least two nodes as landmark nodes (u1, u2, u3) from the interconnected nodes of the network using a selection scheme; for each of the at least two landmark nodes (u1, u2, u3) in the set, generating a path tree that indicates a separation between the respective landmark node (u1, u2, u3), as a root, and each of a number of the plurality of non-landmark nodes (vl-v7) of the interconnected nodes of the network not being selected as landmark nodes, the path tree for each landmark node (u1, u2, u3) representing a data structure that links the number of non-landmark nodes (vl-v7) to the respective landmark node (u1, u2, u3), as the root; and storing each generated path tree in the data structure, wherein the generating is configured to limit each of said plurality of non-landmark nodes (vl-v7) to being included in no more than a predetermined number (r) of path trees; identifying the landmark nodes (u1, u2, u3) in the accessed data structure having at least one of the source node (s) and the target node (t) in their path tree; and determining a search result related to the path tree of the identified landmark nodes (u1, u2, u3).