Hi Emin,
Awesome. Would you like to send a Pull Request against the "develop" branch
(latest)?

https://github.com/orientechnologies/orientdb/tree/develop

Lvc@


On 12 December 2014 at 21:31, Emin Agassi <[email protected]> wrote:
>
>  Hi Luca
>  I quickly modified OGraphBatchInsert class and added a support for
> multiple Edge class names. Now, I can see my Edges in the proper fields of
> a given Vortex.
>  Would you tell me where is the latest version of this Java code? I am not
> sure if I got the latest.
>
>  Also, I randomly get Timer exceptions and database seem to close. Why is
> this ?
>
>
> On Friday, December 12, 2014 10:41:58 AM UTC-5, Emin Agassi wrote:
>>
>>
>>  I think I know what is going on in this code. Basically, this class
>> links all Edges to a given Vertex using either IN and OUT properties or
>> only one specified Edge Class name. So, all edges end up being linked to
>> only one property.
>> That property ends up having a large collection of edges. In my case this
>> collection must be filtered when traversing happens but this is not
>> possible.
>> The only method I found was to traverse all and then filter by @class but
>> that does not work for all use cases.
>> Hmmm. Blueprints Graph Api is much more versatile in this respect.
>>
>> On Friday, December 12, 2014 9:50:19 AM UTC-5, Emin Agassi wrote:
>>>
>>> Luca
>>>
>>> Just to clarify a bit. I like the new BatchInsert class because it is
>>> much faster than Blueprints version. My very big graph (1.5 million
>>> vertexes and 3+ million edges) load in minutes.
>>> However, this class creates Edges that all end up being in one big OUT
>>> or IN collection. Filtering edges in these collections while traversing a
>>> graph is not very simple.
>>> In a normal case when edges are created using SQL or Blueprints API, all
>>> edges end up being named fields in the OUT or IN collections. This makes it
>>> easy to write traversal SQL using the out('isA') or in('SAMEAS')
>>> syntax. Do you know any other method to efficiently filter Edges in the
>>> OUT and IN collections in a given Vertex without having explicit names.
>>> Each of my edges have a property.
>>>
>>> Thanks for help!
>>>
>>> On Friday, December 12, 2014 9:05:55 AM UTC-5, Emin Agassi wrote:
>>>>
>>>>  Luca
>>>>
>>>>  Thanks. I wonder if I can quickly patch up that class to do what I
>>>> need it to do. Not sure how long it will take for you guys to get to this.
>>>>  I actually was able to pass in the @class property and it does create
>>>> Edges using the passed in classes But it does not create lightweight edges
>>>> and so they do not have Labels associated with them.
>>>>  Interestingly, without labels it is not easy to traverse the Edges. I
>>>> did not realize this before. The lightweight edges are much faster and
>>>> easier to traverse. In fact, I am finding that the SQL syntax such as:
>>>>
>>>>   out('xxxx')
>>>>
>>>> only works when Edges have class labels which I think it only happens
>>>> with lightweight edges.
>>>> Surely, I can use the following SQL to traverse:
>>>>
>>>> select expand(in) from ( traverse * from #10:0) where @class='isA'
>>>>
>>>> But the above is not as efficient as:
>>>>
>>>> traverse out('isA') from #10:0
>>>>
>>>> I am still a bit confused by how the BatchInser works. When I create an
>>>> edge which extends the E using the SQL and with properties, it creates the
>>>> new Edge and it has a label.
>>>> But when BatchInsert creates the edge with the class, it does not get a
>>>> Label. Can you point me to what might be the problem?
>>>> here is the code that creates the Edge in the OGraphBatchInsert class:
>>>>
>>>>
>>>> public void createEdge(final Long from, final Long to, Map<String,
>>>> Object> properties) {  if (settingProperties) {  throw new
>>>> IllegalStateException("Cannot create new edges when already set
>>>> properties on vertices");  }  if (from < 0) {  throw new
>>>> IllegalArgumentException(" Invalid vertex id: " + from);  }  if (to < 0)
>>>> {  throw new IllegalArgumentException(" Invalid vertex id: " + to);  }
>>>> if (useLightWeigthEdges && (properties == null || properties.size() ==
>>>> 0)) {  last = last < from ? from : last;  last = last < to ? to : last;  
>>>> putInList(from,
>>>> out, to);  putInList(to, in, from);  } else {  ODocument edgeDoc = new
>>>> ODocument(edgeClass);
>>>>   edgeDoc.fromMap(properties);  edgeDoc.field("out", new 
>>>> ORecordId(getClusterId(from),
>>>> getClusterPosition(from)));  edgeDoc.field("in", new 
>>>> ORecordId(getClusterId(to),
>>>> getClusterPosition(to)));  db.save(edgeDoc);  ORecordId rid = (
>>>> ORecordId) edgeDoc.getIdentity();  putInList(from, out, rid);  
>>>> putInList(to,
>>>> in, rid);  }  }
>>>>
>>>> How do I open the issue? Where do I go for this?
>>>>
>>>> On Friday, December 12, 2014 5:45:31 AM UTC-5, Lvc@ wrote:
>>>>>
>>>>> Hi Emin,
>>>>> That API is quite raw. I know Luigi is working to extend it, but this
>>>>> is not a so high priority now (we're under release of 2.0rc1).
>>>>>
>>>>> Please could you open a new issue on that?
>>>>>
>>>>> Lvc@
>>>>>
>>>>>
>>>>> On 12 December 2014 at 03:52, Emin Agassi <[email protected]>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>  I found a setEdgeClass method in the OGraphBatchInsert class which
>>>>>> allows to set the class name for all edges.However, I need to be able to
>>>>>> set different classes for different edges.
>>>>>>  I am passing a @class property to the addEdge method but this does
>>>>>> not work.
>>>>>>  Can anyone help?
>>>>>>
>>>>>>
>>>>>> On Thursday, December 11, 2014 10:09:22 AM UTC-5, Emin Agassi wrote:
>>>>>>>
>>>>>>> Hi Luca,
>>>>>>>
>>>>>>> The OGraphBatchInsert class contains a createEdge method which does
>>>>>>> not allow to create an Edge with a default label set.
>>>>>>> Is there a method to provide a default label for the E edges?
>>>>>>>
>>>>>>> I do not want to create any additional properties on the Edges that
>>>>>>> I am creating.
>>>>>>> Default labels on the Edges allows very easy edge traversals.
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>  --
>>>>>>
>>>>>> ---
>>>>>> 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.
>>>>>>
>>>>>
>>>>>  --
>
> ---
> 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.
>

-- 

--- 
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.

Reply via email to