Hi Gregory,
First of all, thank you for using our new Neo4j to OrientDB Importer
In version 2.2.14 (that will be released soon), we have changed the way the
importer behaves in case of Neo4j nodes with multiple labels
The documentation that Oleksandr posted is about the new version (as I've
updated the documentation already)
So, starting from version 2.2.14, Neo4j nodes with multiple labels will be
imported into a single OrientDB Class ("MultipleLabelNeo4jConversion").
Things are a bit more optimized now, but still we have some ideas on our
roadmap on how we can improve the migration in this specific case
My suggestion is that you retry the import with v. 2.2.14: all nodes will
be migrated into a single class and in each vertex you will find the
property Neo4jLabelList, that includes the original Neo4j label
This Neo4jLabelList property has an index on it, and you can use it to
query on a specific neo4j label. Let me show you an example:
//return all nodes/vertices with label LabelName
Neo4j query:
MATCH (n:LabelName) RETURN n
Corresponding query in OrientDB:
SELECT * FROM V WHERE Neo4jLabelList CONTAINS 'LabelName'
or using our MATCH syntax:
MATCH {class: V, as: n, where: (Neo4jLabelList CONTAINS 'LabelName')}
RETURN n
Once the import has been completed (with version 2.2.14), surely you can
bulk change the classes of records. I was planning to document this into an
article, that I still have on draft - thanks for your patience. I'll try to
explain how to do this briefly below:
- first you'll need to create the classes where you want to move the
records. When creating them, please keep in mind the following:
-- It will be important that in your new classes you'll define a few
properties: Neo4jNodeID, with a unique index (in case you'll want to query
by original neo4j id) and Neo4jLabelList of type Embedded list string, with
a not unique index on it (in case you want to query by original neo4j label)
- to bulk change the class, please use the MOVE VERTEX syntax
(http://orientdb.com/docs/2.2/SQL-Move-Vertex.html)
How to use the Move vertex syntax? you can select all vertices that have a
specific neo4j label, and then move them to your new class, e.g.
MOVE VERTEX (SELECT FROM MultipleLabelNeo4jConversion WHERE Neo4jLabelList
CONTAINS 'Your Neo4j Label here' TO CLASS:YourNewClassHere
Note that I am planning to automate the creation of these classes (one of
each original neo4j label) so that you'll just need to use the move vertex
syntax (without the need to create the classes, the properties and the
indices first). I'm thinking to use an option for this. We are doing our
best to improve the experience of our users
About 3 - that's a good question. Sure, we have this in our roadmap
already. It will take some time to implement this, but I believe that
importing into a single class + moving vertices (using a where condition on
the original neo4j label) is a good temporary workaround. What's your
opinion?
Note that we have improved a few things in 2.2.14 (the list of improvements
is
here:
https://github.com/orientechnologies/orientdb-neo4j-importer/issues?q=is%3Aissue+is%3Aclosed)
so my suggestion is to wait a few more days and give v. 2.2.14 a try
Hope the information above helps. I'll be glad to help with any issues
you'll find. If you can somehow share the database, I can test the import
myself, and see what can be done to optimize it, if needed
Thanks,
On Monday, 19 December 2016 20:13:12 UTC+1, Gregory Mace wrote:
>
>
> I've imported several millions of records from Neo4j. They all came over,
> but the class type is not what I wanted them to be. I have some questions:
>
> 1. can orientdb represent Vertexes similar to Neo4j in terms of supporting
> multiple Labels on a Vertex. If so, how?
> 2. how can I bulk change the classes of records ( Vertexes ) that I
> imported from Neo4j?
> 3. Is there a way to pre-define how I want an import to assign classes?
>
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.