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

标签 python c graph-databases memgraphdb

如何在 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) 中的 --query-modules-directory 标志,Memgraph 可以从其他目录加载查询模块)或作为命令行参数提供(例如使用 Docker 时)。

如果您提供附加目录作为参数,请不要忘记包含 /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/

相关文章:

python - 如何在Python中按升序迭代日期

python - Pytest 和舍入在命名元组中 float

c - 结构和文件有什么区别?

c - 为什么 GCC 不在此示例中发出警告

date - 如何在 Java 中使用 GremlinPipeline 和 PipeFunctions 进行查询?

python - 与 Timedelta 的时间差给出错误的结果

python - 如何使用 ECDSA secp256k1 曲线在 python 中以与在 Javascript 中签名相同的方式对消息进行签名?

c - C 程序中的文件结尾 (EOF)

graph - 获取每个关系的路径长度 neo4j

neo4j - 将 Neo4j 数据导入 Gephi 0.9.1