如何在 Memgraph 中加载 MAGE 查询模块?查询模块用 Python 或 C 编写有区别吗?
最佳答案
查询模块可以使用 C API(.so
模块)和 Python API(.py
模块)编写。每个文件对应一个查询模块,其中包含一个或多个过程。这些文件的名称将映射到查询模块名称。例如,nxalg.py
中的过程 node_connectivity
将映射到 Cypher 查询语言中的 nxalg.node_connectivity()
。
启动 Memgraph 后,它将尝试从默认(/usr/lib/memgraph)的所有
)目录。.so
和 .py
文件加载查询模块/query_modules 和/var/lib/memgraph/internal_modules
MAGE 模块位于 /usr/lib/memgraph/query_modules
,并通过 Memgraph Lab 开发的自定义模块位于 /var/lib/memgraph/internal_modules
。
如果查询模块的路径添加到主配置文件 (/etc/memgraph/memgraph.conf) 中的
)或作为命令行参数提供(例如使用 Docker 时)。--query-modules-directory 标志
,Memgraph 可以从其他目录加载查询模块
如果您提供附加目录作为参数,请不要忘记包含 /usr/lib/memgraph/query_modules
的路径,否则 Memgraph 启动时将不会加载该目录中的查询.
如果在 Memgraph 已经运行时添加某个查询模块,您需要在查询中使用 mg.load("module_name")
过程手动加载它:
调用 mg.load("py_example");
如果您想重新加载所有现有模块并加载任何新添加的模块,请使用 mg.load_all()
:
调用 mg.load_all();
您可以通过在查询中使用 mg.procedures()
过程来检查查询模块是否已加载:
调用 mg.procedures() YIELD *;
关于python - 如何在 Memgraph 中加载 MAGE 查询模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73701973/