如何在Memgraph中加载MAGE查询模块



如何在Memgraph中加载MAGE查询模块?如果查询模块是用Python或C编写的,会有区别吗?

查询模块可以使用C API(.so模块(和Python API(.py模块(编写。每个文件对应一个查询模块,其中包含一个或多个过程。这些文件的名称将映射到查询模块名称。例如,nxalg.py中的过程node_connectivity将映射到Cypher查询语言中的nxalg.node_connectivity()

启动Memgraph后,它将尝试从默认(/usr/lib/memgraph/query_modules and /var/lib/memgraph/internal_modules(目录中的所有.so.py文件加载查询模块。

MAGE模块位于/usr/lib/memgraph/query_modules,自定义模块通过/var/lib/memgraph/internal_modules的Memgraph实验室开发。

Memgraph可以从其他目录加载查询模块,如果它们的路径被添加到主配置文件(/etc/memgraph/memgraph.conf(中的--query-modules-directory flag或作为命令行参数提供(例如,当使用Docker时(。

如果您提供附加目录作为参数,请不要忘记包含/usr/lib/memgraph/query_modules的路径,否则Memgraph启动时将不会加载该目录中的查询。

如果某个查询模块是在Memgraph已经运行时添加的,则需要在查询中使用mg.load("module_name")过程手动加载:

CALL mg.load("py_example");

如果您想重新加载所有现有模块并加载任何新添加的模块,请使用mg.load_all():

CALL mg.load_all();

您可以在查询中使用mg.procedures()过程来检查查询模块是否已加载:

CALL mg.procedures() YIELD *;

最新更新