You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[Breadth-first search](/advanced-algorithms/deep-path-traversal#breadth-first-search)| C++ | An algorithm for traversing through a graph starting based on nodes' breadth (distance from the source node). |
23
23
|[Weighted shortest path](/advanced-algorithms/deep-path-traversal#weighted-shortest-path)| C++ | The weighted shortest path problem is the problem of finding a path between two nodes in a graph such that the sum of the weights of relationships connecting nodes, or the sum of the weight of some node property on the path, is minimized. |
24
24
|[All shortest paths](/advanced-algorithms/deep-path-traversal#all-shortest-paths)| C++ | Finding all shortest paths is an expansion of the weighted shortest paths problem. The goal of finding the shortest path is obtaining any minimum sum of weights on the path from one node to the other. |
25
+
|[K shortest paths](/advanced-algorithms/deep-path-traversal#k-shortest-paths)| C++ | Returning K shortest paths between 2 nodes in order of shortest to longest paths. |
25
26
26
27
## Traditional graph algorithms
27
28
@@ -84,6 +85,7 @@ If you want to know more and learn how this affects you, read our [announcement]
|[collections](/advanced-algorithms/available-algorithms/collections)| C++ | The collections module is a collection manipulation module that offers functions to work with lists in Cypher queries, allowing operations like filtering, sorting, and modification for efficient data handling. |
88
+
|[convert](/advanced-algorithms/available-algorithms/convert)| C++ | The convert module is a data transformation module that offers functions to convert various data structures into different formats, allowing operations like data type transformation and structural modifications for efficient data handling. |
87
89
|[create](/advanced-algorithms/available-algorithms/create)| C++ | The create module is a set of powerful tools that provide additional capabilities for creating nodes and relationships in the Memgraph graph database. |
88
90
|[csv_utils](/advanced-algorithms/available-algorithms/csv_utils)| C++ | An utility module for creating and deleting CSV files. |
89
91
|[date](/advanced-algorithms/available-algorithms/date)| Python | The `date` module provides various utilities to handle date and time operations within the Cypher query language. |
@@ -96,6 +98,7 @@ If you want to know more and learn how this affects you, read our [announcement]
96
98
|[label](/advanced-algorithms/available-algorithms/label)| C++ | The `label` module provides an array of utilities for working with labels. |
97
99
|[llm_util](/advanced-algorithms/available-algorithms/llm_util)| Python |**Deprecated**. A module that contains procedures describing graphs in a format best suited for large language models (LLMs). |
98
100
|[map](/advanced-algorithms/available-algorithms/map)| C++ | The map module offers a versatile toolkit for manipulating collections of key-value pairs, enabling advanced data operations within a graph database context |
101
+
|[math](/advanced-algorithms/available-algorithms/math)| C++ | A general math query module providing mathematical operations and utilities. |
99
102
|[merge](/advanced-algorithms/available-algorithms/merge)| C++ | A module which provides the capabilities of the `MERGE` Cypher command, merging or creating nodes and relationships as per specified conditions. It ensures precision and coherence in managing interconnected data structure. |
100
103
|[meta](/advanced-algorithms/available-algorithms/meta)| C++ | Provides information about graph nodes and relationships. |
101
104
|[meta_util](/advanced-algorithms/available-algorithms/meta_util)| Python | A module that contains procedures describing graphs on a meta-level. |
@@ -123,3 +126,55 @@ If you want to know more and learn how this affects you, read our [announcement]
123
126
|[elasticsearch](/advanced-algorithms/available-algorithms/elasticsearch_synchronization)| Python | A module used for synchronizing Memgraph and Elasticsearch. |
124
127
|[igraph](/advanced-algorithms/available-algorithms/igraphalg)| Python | A module that provides igraph integration with Memgraph and implements many igraph algorithms. |
125
128
|[nxalg](/advanced-algorithms/available-algorithms/nxalg)| Python | A module that provides NetworkX integration with Memgraph and implements many NetworkX algorithms. |
129
+
130
+
131
+
## APOC mappings
132
+
133
+
This table shows the mapping between APOC functions/procedures and their Memgraph equivalents. Use these mappings if you're familiar with Neo4j's APOC library.
| apoc.coll.union | Unites two lists into one, eliminating duplicates |[collections.union()](/advanced-algorithms/available-algorithms/collections#union)|
138
+
| apoc.coll.unionAll | Returns the union of two input lists, including duplicates |[collections.union_all()](/advanced-algorithms/available-algorithms/collections#union_all)|
139
+
| apoc.coll.removeAll | Removes defined elements from the input list |[collections.remove_all()](/advanced-algorithms/available-algorithms/collections#remove_all)|
140
+
| apoc.coll.contains | Verifies the existence of an input value in an input list |[collections.contains()](/advanced-algorithms/available-algorithms/collections#contains)|
141
+
| apoc.coll.flatten | Returns flattened list of inputs provided |[collections.flatten()](/advanced-algorithms/available-algorithms/collections#flatten)|
142
+
| apoc.coll.pairs | Creates pairs of neighbor elements within an input list |[collections.pairs()](/advanced-algorithms/available-algorithms/collections#pairs)|
143
+
| apoc.coll.toSet | Converts the input list to a set |[collections.to_set()](/advanced-algorithms/available-algorithms/collections#to_set)|
144
+
| apoc.coll.sum | Calculates the sum of listed elements |[collections.sum()](/advanced-algorithms/available-algorithms/collections#sum)|
145
+
| apoc.coll.partition | Partitions the input list into sub-lists of the specified size |[collections.partition()](/advanced-algorithms/available-algorithms/collections#partition)|
146
+
| apoc.convert.toTree | Converts values into tree structures |[convert_c.to_tree()](/advanced-algorithms/available-algorithms/convert_c#to_tree)|
147
+
| apoc.convert.fromJsonList | Converts a JSON string representation of a list into an actual list object |[json_util.from_json_list()](/advanced-algorithms/available-algorithms/json_util#from_json_list)|
148
+
| apoc.convert.toJson | Converts any value to its JSON string representation |[json_util.to_json()](/advanced-algorithms/available-algorithms/json_util#to_json)|
149
+
| apoc.create.node | Creates a single node with specified labels and properties |[create.node()](/advanced-algorithms/available-algorithms/create#node)|
150
+
| apoc.create.nodes | Creates multiple nodes with specified labels and properties |[create.nodes()](/advanced-algorithms/available-algorithms/create#nodes)|
151
+
| apoc.create.removeProperties | Removes properties from nodes |[create.remove_properties()](/advanced-algorithms/available-algorithms/create#remove_properties)|
152
+
| apoc.create.removeLabels | Removes labels from nodes |[create.remove_labels()](/advanced-algorithms/available-algorithms/create#remove_labels)|
153
+
| apoc.date.convertFormat | Converts date strings between different formats |[date.convert_format()](/advanced-algorithms/available-algorithms/date#convert_format)|
154
+
| apoc.label.exists | Checks if a label exists on a node |[label.exists()](/advanced-algorithms/available-algorithms/label#exists)|
155
+
| apoc.map.removeKeys | Removes specified keys from a map |[map.remove_keys()](/advanced-algorithms/available-algorithms/map#remove_keys)|
156
+
| apoc.map.merge | Merges multiple maps into one |[map.merge()](/advanced-algorithms/available-algorithms/map#merge)|
157
+
| apoc.map.fromLists | Creates a map from two lists (keys and values) |[map.from_lists()](/advanced-algorithms/available-algorithms/map#from_lists)|
158
+
| apoc.refactor.from | Redirects relationship to use a new start node |[refactor.from()](/advanced-algorithms/available-algorithms/refactor#from)|
159
+
| apoc.refactor.to | Redirects relationship to use a new end node |[refactor.to()](/advanced-algorithms/available-algorithms/refactor#to)|
160
+
| apoc.refactor.rename.label | Renames a label from old to new for all nodes |[refactor.rename_label()](/advanced-algorithms/available-algorithms/refactor#rename_label)|
161
+
| apoc.refactor.rename.nodeProperty | Renames a property from old to new for all nodes |[refactor.rename_node_property()](/advanced-algorithms/available-algorithms/refactor#rename_node_property)|
162
+
| apoc.refactor.cloneNodes | Clones specific nodes in the graph |[refactor.clone_nodes()](/advanced-algorithms/available-algorithms/refactor#clone_nodes)|
163
+
| apoc.refactor.cloneSubgraph | Clones the subgraph by cloning nodes and relationships |[refactor.clone_subgraph()](/advanced-algorithms/available-algorithms/refactor#clone_subgraph)|
164
+
| apoc.refactor.cloneSubgraphFromPaths | Clones subgraph specified by a list of paths |[refactor.clone_subgraph_from_paths()](/advanced-algorithms/available-algorithms/refactor#clone_subgraph_from_paths)|
165
+
| apoc.refactor.collapseNode | Collapses a node into a relationship |[refactor.collapse_node()](/advanced-algorithms/available-algorithms/refactor#collapse_node)|
166
+
| apoc.refactor.invert | Inverts the direction of a given relationship |[refactor.invert()](/advanced-algorithms/available-algorithms/refactor#invert)|
167
+
| apoc.refactor.normalizeAsBoolean | Normalizes properties to true/false values |[refactor.normalize_as_boolean()](/advanced-algorithms/available-algorithms/refactor#normalize_as_boolean)|
168
+
| apoc.refactor.extractNode | Creates a node from a relationship |[refactor.extract_node()](/advanced-algorithms/available-algorithms/refactor#extract_node)|
169
+
| apoc.refactor.deleteAndReconnect | Deletes nodes and reconnects remaining nodes |[refactor.delete_and_reconnect()](/advanced-algorithms/available-algorithms/refactor#delete_and_reconnect)|
170
+
| apoc.refactor.renameType | Changes the relationship type |[refactor.rename_type()](/advanced-algorithms/available-algorithms/refactor#rename_type)|
171
+
| apoc.refactor.rename.typeProperty | Renames the property of a relationship |[refactor.rename_type_property()](/advanced-algorithms/available-algorithms/refactor#rename_type_property)|
172
+
| apoc.refactor.mergeNodes | Merges properties, labels and relationships for source nodes to target node |[refactor.mergeNodes()](/advanced-algorithms/available-algorithms/refactor#mergenodes)|
173
+
| apoc.text.join | Joins all strings into a single one with given delimiter |[text.join()](/advanced-algorithms/available-algorithms/text#join)|
174
+
| apoc.text.indexOf | Finds the index of first occurrence of a substring within a string |[text.indexOf()](/advanced-algorithms/available-algorithms/text#indexof)|
175
+
| apoc.text.regexGroups | Returns all matched subexpressions of regex on provided text |[text.regexGroups()](/advanced-algorithms/available-algorithms/text#regexgroups)|
176
+
| apoc.text.format | Formats strings using the C++ fmt library |[text.format()](/advanced-algorithms/available-algorithms/text#format)|
177
+
| apoc.text.replace | Replaces substrings matching regex with replacement |[text.replace()](/advanced-algorithms/available-algorithms/text#replace)|
178
+
| apoc.text.regReplace | Replaces substrings matching regex with replacement |[text.regReplace()](/advanced-algorithms/available-algorithms/text#regreplace)|
0 commit comments