当前位置: 首页 > 知识库问答 >
问题:

neo4j重建自动索引

吕承福
2023-03-14

我从这里的文档和帖子中了解到,在neo4j中为节点属性启用自动索引后,必须为每个节点重新设置属性,以将属性添加到索引中。

Neo4j 1.9版。M05

使用DrWHO数据库,此groovy代码旨在通过设置属性将Dr字符添加到自动索引字符属性中。此代码不起作用。运行后自动节点索引为空

你能看出我做错了什么吗?

import org.neo4j.graphdb.*
import org.neo4j.graphdb.factory.*
import org.neo4j.graphdb.index.*

db_path = '/Users/mike/Documents/code/neo4j/dbs/drwho.db'

// use Builder to initialize settings for embedded db
// include autoindexing
GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder( db_path ).
  setConfig(GraphDatabaseSettings.node_auto_indexing, "true" ).
  setConfig(GraphDatabaseSettings.node_keys_indexable, "character" ).
  newGraphDatabase()

DoctorKey="character"
DoctorValue="Doctor"
Node Doctor = graphDb.getNodeById( 1 )
assert Doctor.hasProperty( DoctorKey )
assert Doctor.getProperty( DoctorKey ).equals( DoctorValue )

// drop and add character property to add it to auto_index
Transaction tx = graphDb.beginTx()
try
{
  Doctor.removeProperty( DoctorKey )
  Doctor.setProperty( DoctoryKey, DoctorValue )
  tx.success()
} catch ( Exception e ) { tx.failure()
} finally               { tx.finish() }

assert Doctor.hasProperty( DoctorKey )
assert Doctor.getProperty( DoctorKey ).equals( DoctorValue )

// query index
ReadableIndex<Node> autoNodeIndex = graphDb.index().
  getNodeAutoIndexer().
  getAutoIndex()

// DoctorAgain is NULL
Node DoctorAgain =  autoNodeIndex.get( DoctorKey , DoctorValue ).getSingle()
assert DoctorAgain == Doctor


addShutdownHook {
  graphDb.shutdown()
}

共有1个答案

呼延渝
2023-03-14

这不是一个与Neo4j相关的问题,您只是在代码中输入了一个错误。如果更换

Doctor.setProperty( DoctoryKey, DoctorValue )

Doctor.setProperty( DoctorKey, DoctorValue )

它起作用了。

 类似资料:
  • 我的Neo4J实例突然停止工作,我想我的驱动器因为一些不相关的日志文件而耗尽了空间。无论如何,现在我不能启动Neo4J,它开始了,一次又一次。如果我检查数据库的一致性,我会得到以下消息。(在版本3.3.5或3.4.1上都不起作用) 警告:标签索引未正确关闭,需要重建。标签索引:neostore。标签可以存储。db WARN:索引未正确关闭,需要重建。索引[IndexRule[id=1,描述符=In

  • 我正在从SDN3迁移到SDN4,从NEO4J2.3迁移到3.0。1. 我有以下搜索密码查询: 在我的测试中,Param等于以下Lucene查询: 就是现在 返回 但在SDN 3和Neo4j 2.3上运行良好,并返回节点。 这是我的Neo4jTestConfig: 我的配置可能有什么问题?如何使其在SDN 4上工作? 更新 此外,我发现以下答案无法使用InProcessServer()SDN 4配置

  • 有时PyCharm会变得非常慢。经过 20-30 分钟的缓慢运行,它会重建其索引。有没有办法手动触发重建 PyCharm 索引?

  • batch.properties文件包含以下行: 当试图在Windows上运行批处理导入程序时,我遇到了以下异常: *I:\Research\Temporal Analysy\neo4j>java-server-xmx4g-jar batch-import-jar-with-dependencies.jar data/graph.db nodes.csv rels.csv node_index u

  • 我正在使用node.js连接到neo4j数据库。每当我必须为一个节点设置索引时,我都会通过转到neo4j浏览器(localhost:7474)来手动完成。 我构建了自己的nodejs适配器来连接到neo4j,因此目前我只能访问密码查询。要创建索引,我只能访问cypher或浏览器(7474)。那么创建自动全文索引的正确方法是什么,最好是从浏览器本身创建?我如何使用密码访问它(或者我必须访问它?neo

  • neo4j旧索引和自动索引与新标签基模式索引以及旧索引自动索引和新索引方法之间的差异部分回答了这个问题 我还不能评论他们,在这里写一个新的帖子。在我的数据库中,我有一个遗留索引“topic”和标签“topic”。 我知道: 模式匹配(n: Label)将扫描节点; b.模式START(n: Index)将搜索遗留索引 c.自动索引是一种遗留索引,应该给我与(b)相同的结果,但在我的情况下没有 d.