Ruby on rails 如何重建Neo4j-Lucene索引Neo4j.rb

Ruby on rails 如何重建Neo4j-Lucene索引Neo4j.rb,ruby-on-rails,lucene,jruby,ruby-on-rails-3.1,neo4j,Ruby On Rails,Lucene,Jruby,Ruby On Rails 3.1,Neo4j,我在Rails 3.1上使用Neo4j.rbgem(1.2.2)运行Neo4j(1.4) 我遇到了一个问题,neo4j索引被破坏了,我不能再运行数据库了,就像我在几个论坛中提到的那样,我删除了db/index目录,它工作了。但是,我需要再次重建索引 我在文档中找不到关于如何重建索引的任何地方,有人能帮忙吗 非常感谢 您应该进入数据库目录并删除 名为index的目录 文件index.db 然后遍历节点和边的孔集,更新每个节点的特性 /purbon我的问题与此类似——升级到neo4j 1.5(从

我在Rails 3.1上使用Neo4j.rbgem(1.2.2)运行Neo4j(1.4)

我遇到了一个问题,neo4j索引被破坏了,我不能再运行数据库了,就像我在几个论坛中提到的那样,我删除了db/index目录,它工作了。但是,我需要再次重建索引

我在文档中找不到关于如何重建索引的任何地方,有人能帮忙吗


非常感谢

您应该进入数据库目录并删除

  • 名为index的目录
  • 文件index.db
然后遍历节点和边的孔集,更新每个节点的特性


/purbon

我的问题与此类似——升级到neo4j 1.5(从1.4版)后,我的索引被破坏。 我的情况是: 我有两个索引:

  • \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
  • User
    :用于索引用户名字段,以便我可以查找它们
这导致了一个大问题,我可以通过id找到所有节点,但不能在用户名后查找,也不能列出特定类型的所有对象

修复(我将提供java代码,但在其他语言中的想法也一样):


希望这能帮助你或其他人摆脱困境

感谢所有试图帮忙的人。就我而言,我已通过以下步骤成功解决了问题:

步骤1根据Neo4j的Michael Hunger(通过邮件列表)的建议,我使用了一个名为checkindex的工具来删除损坏的索引项

步骤2删除损坏的索引项后,剩下的问题是构建它们,以便Lucene可以再次开始查询它们。这可以使用Model.addindex(:index\u name)简单地完成。请注意,此操作需要包装在Neo4j::事务中。在我的例子中,我在railsconsole上运行了它,但我想您也可以在rails应用程序中编写它们

例如:

Neo4j::Transaction.run do
  User.all.each do |user|
    user.add_index(:first_name)
    user.add_index(:email)
    user.save
  end
end
希望这能帮助其他面临同样问题的人


干杯

谢谢Purbon,但是除非属性发生更改,否则它似乎不会更新任何内容,也许有办法覆盖它?您可以执行类似object.setProperties(object.getProperties())的操作。您的数据库状态不会改变,您将“重新索引”。我的情况不同,因为我使用的是neo4j.rbgem(在RubyonRails上)。无论如何,谢谢你的帮助!
Neo4j::Transaction.run do
  User.all.each do |user|
    user.add_index(:first_name)
    user.add_index(:email)
    user.save
  end
end