JanusGraph 0.5.2创建全文索引报错:addKey方法签名不匹配
解决JanusGraph 0.5.2创建全文索引时addKey方法参数不匹配的错误
你遇到的这个错误核心原因是传入addKey()的第一个参数不是JanusGraph的PropertyKey对象,而是TinkerPop的T.value常量,大概率是变量名冲突或者静态导入覆盖导致的。下面给你具体的解决步骤和正确操作代码:
一、修正变量名避免冲突
如果你的代码里导入了import static org.apache.tinkerpop.gremlin.structure.T.*;,那么value这个变量名会被T类的静态常量T.value覆盖,导致步骤3中传入的不是你自己创建的PropertyKey。
修改步骤2的变量名,比如改成valueKey:
mgmt = graph.openManagement() // 重命名变量,避免和T.value冲突 PropertyKey valueKey = mgmt.makePropertyKey('value').dataType(String.class).make()
二、使用正确的索引构建语法
在JanusGraph 0.5.2中,给索引键添加TEXT映射的正确写法如下,确保第一个参数是你刚创建的PropertyKey对象:
// 需确保导入正确的Mapping类:import org.janusgraph.core.schema.Mapping; mgmt.buildIndex('verticesByValue', Vertex.class) .addKey(valueKey, Mapping.TEXT.asParameter()) .buildMixedIndex("search") mgmt.commit()
三、额外检查项
- 确认已正确导入JanusGraph的
Mapping类,不要误导入其他同名类; - 检查JanusGraph配置文件中,
search索引后端的配置是否正确指向你的Elasticsearch 6.6.0实例,示例配置如下:index.search.backend=elasticsearch index.search.hostname=localhost index.search.port=9200 index.search.elasticsearch.client-only=true
按上述步骤调整后,就能成功创建全文索引了。
内容的提问来源于stack exchange,提问作者Yamiteru XYZ
相关产品推荐
相关产品推荐

