Giter Club home page Giter Club logo

Comments (8)

BlueGreenMagick avatar BlueGreenMagick commented on July 16, 2024 1

I exported and imported the entire database in cypher file. The newly imported database doesn't have the SET problem, so gds.pagerank.write worked fine on the new database.

from graphipedia.

mirkonasato avatar mirkonasato commented on July 16, 2024

Well, to tell you what's involved in upgrading to the latest version I would need to actually do the upgrade. 🙂

I suggest looking at the forks and see if somebody already did it. Like, this one by noppaz seems to be using Neo4j v4.

from graphipedia.

greenguy33 avatar greenguy33 commented on July 16, 2024

Thanks for the suggestion to look at the forks. I was able to use andrew-yarmola's fork to generate what I needed!

from graphipedia.

BlueGreenMagick avatar BlueGreenMagick commented on July 16, 2024

As a warning to others, databases created with noppaz's fork seems to be slightly off. Everything else seems to work fine, but using a SET query to create a new property with a floating value has a serious side effect of changing other node's property as well.

For example, if you run MATCH (n) WHERE id(n) = 1001 SET n.newProp=0.123 query to create a property, the first node(with id 0) gets overridden with 1001st node. Running algorithms that write to a new property like gds.pagerank.write is affected as well, sometimes resulting in error messages such as IllegalStateException: 13 already exists.

As a workaround, I've had to use export and import back the database with apoc.export.cypher.all.

from graphipedia.

greenguy33 avatar greenguy33 commented on July 16, 2024

@BlueGreenMagick I experienced the same thing with andrew-yarmola fork. I also was trying to run gds.pagerank and ran into this issue that caused my database to be corrupted; I had to restore from the backup. Could you elaborate more on your workaround? I tried several things but couldn't find anything that wouldn't involve eventually writing properties using SET

from graphipedia.

BlueGreenMagick avatar BlueGreenMagick commented on July 16, 2024

Using the apoc plugin, I exported the entire database with apoc.export.cypher.all, then imported it in a new database by running the cypher file. (Following the steps in this blog) The downside is that it takes a huge amount of time.

I also tried exporting&importing as a dump file (which is much faster), but that doesn't seem to work.

from graphipedia.

greenguy33 avatar greenguy33 commented on July 16, 2024

Ah ok, gotcha. In that case I'm assuming that you ran gds.pagerank with mutate mode to modify the in-memory graph, then dumped the in-memory graph to a file and re-imported it to a new database?

I tried to do something like that as well but I ran into trouble with string properties. Neo4j won't allow string properties to be imported to an in-memory graph (as documented here), and I need string properties to match up nodes in the original graph to nodes in the new graph, since the nodeIds aren't guaranteed to stay the same between the two graphs.

Still haven't found a working solution yet.

from graphipedia.

greenguy33 avatar greenguy33 commented on July 16, 2024

That makes sense, thanks for the tip!

from graphipedia.

Related Issues (11)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.