如何在Test Container中启用JanusGraph的ConfiguredGraphFactory?
在Test Container中启用JanusGraph的ConfiguredGraphFactory
问题描述
我正在使用Test Container运行JanusGraph,但测试中需要使用ConfiguredGraphFactory,请问如何在Test Container中启用它?以下是我启动Test Container的代码:
GenericContainer<JanusGraph> janus = new JanusGraph() .withNetwork(network) .withExposedPorts(JANUS_PORT) .waitingFor(Wait.forListeningPort()) .withStartupTimeout(Duration.ofMinutes(5)) .withEnv("janusgraph.storage.backend", "cql") .withEnv("janusgraph.storage.hostname", storageName) .withEnv("janusgraph.index.search.backend", "elasticsearch") .withEnv("janusgraph.index.search.hostname", indexName) .withEnv("janusgraph.schema.default", "tp3");
我尝试添加.withEnv("janusgraph.graph.graphname","org.janusgraph.core.ConfiguredGraphFactory")但未生效(镜像名称:janusgraph/janusgraph:0.5.3)。
解决方案
要在JanusGraph 0.5.3的Test Container中启用ConfiguredGraphFactory,需要添加以下关键配置项,而非你之前尝试的janusgraph.graph.graphname参数:
- 启用ConfiguredGraphFactory核心开关:
.withEnv("janusgraph.graph-factory.enabled", "true") - 配置存储后端的模板参数(与现有存储配置保持一致):
.withEnv("janusgraph.graph-factory.storage.backend", "cql") .withEnv("janusgraph.graph-factory.storage.hostname", storageName) - 配置索引后端的模板参数(与现有索引配置保持一致):
.withEnv("janusgraph.graph-factory.index.search.backend", "elasticsearch") .withEnv("janusgraph.graph-factory.index.search.hostname", indexName) - 可选:设置默认Schema配置:
.withEnv("janusgraph.graph-factory.schema.default", "tp3")
修改后的完整启动代码
GenericContainer<JanusGraph> janus = new JanusGraph() .withNetwork(network) .withExposedPorts(JANUS_PORT) .waitingFor(Wait.forListeningPort()) .withStartupTimeout(Duration.ofMinutes(5)) // 原有基础配置 .withEnv("janusgraph.storage.backend", "cql") .withEnv("janusgraph.storage.hostname", storageName) .withEnv("janusgraph.index.search.backend", "elasticsearch") .withEnv("janusgraph.index.search.hostname", indexName) .withEnv("janusgraph.schema.default", "tp3") // 新增ConfiguredGraphFactory启用配置 .withEnv("janusgraph.graph-factory.enabled", "true") .withEnv("janusgraph.graph-factory.storage.backend", "cql") .withEnv("janusgraph.graph-factory.storage.hostname", storageName) .withEnv("janusgraph.graph-factory.index.search.backend", "elasticsearch") .withEnv("janusgraph.graph-factory.index.search.hostname", indexName) .withEnv("janusgraph.graph-factory.schema.default", "tp3");
说明
你之前使用的janusgraph.graph.graphname参数是用来指定默认单图实例的名称,并非启用ConfiguredGraphFactory的配置项。ConfiguredGraphFactory需要通过graph-factory.enabled开启,并配置对应的存储、索引模板参数,这样JanusGraph才能基于这些模板动态创建和管理多个图实例。
内容的提问来源于stack exchange,提问作者rbednarska
相关产品推荐
相关产品推荐

