gpt4 book ai didi

java - Neo4j 中批量插入期间的数字索引

转载 作者:行者123 更新时间:2023-12-01 05:41:43 26 4
gpt4 key购买 nike

我正在将节点和关系批量插入到 Neo4j 图形数据库中。一切正常,包括多个属性 ([String] name, [int] id) 上的索引。但是,当我尝试按范围查询属性“id”上的索引时,它没有返回任何结果。

问题,正如我从 the non-batch example 得出的那样,是我无法像这样向 BatchInserterIndex 提供数字 ValueContext :

Map<String, Object> properties = new HashMap<String, Object>(2);

properties.put("name", urs.getString(1));

// I can do this:
properties.put("id", urs.getInt(2));

// But not this (throws an "invalid type" exception):
// properties.put("id", new ValueContext( urs.getInt(2) ).indexNumeric());

long node_id = inserter.createNode(properties);
index.add(node_id, properties);

我还没有找到任何documentation关于批量插入期间的数字索引。

查询代码如下:

IndexManager index = gdb.index();
Index<Node> people = index.forNodes("people");
IndexHits<Node> hits = people.query(
QueryContext.numericRange("id", min_id, max_id)
);

是否可以在批量插入操作中添加数字索引,以便我可以按范围查询值?

谢谢。

<小时/>

编辑

我做错的是我试图将相同的属性映射传递给createNode()index.add()。前者崩溃了,因为它不需要 ValueContext 并且不理解它。因此,请务必将不同的属性映射传递给这些方法,并在用于 index.add 的值中包含 ValueContext-ed 数值:

Long value = 1L;

long node_id = inserter.createNode(
MapUtil.map("id", value, "other_prop", other_value));

index.add(node_id,
MapUtil.map("id", ValueContext.numeric( value ), "other_prop", other_value));

最佳答案

您使用的是哪个版本的 neo4j?它正在最新版本中运行

关于java - Neo4j 中批量插入期间的数字索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6982328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com