I'd prefer a non sql solution for this.

Am Sonntag, 11. Dezember 2016 09:48:44 UTC-2 schrieb Ray Neiheiser:
>
> Anyone has an idea?
>
> Am Montag, 5. Dezember 2016 15:39:45 UTC-2 schrieb Ray Neiheiser:
>>
>> It's very strange also with:
>>
>> StreamSupport.stream(startNodes.spliterator(), false).flatMap(vertex1 -> 
>> StreamSupport.stream(vertex1.getEdges(Direction.OUT, 
>> relationshipId).spliterator(), false)).collect(Collectors.toList())
>> It seems like I am unable to detect the outgoing edges of the vertices.
>> They seem to be all null.
>>
>> I've added them like this:
>>
>>
>> Iterable<Vertex> startNodes = this.getVertexList(storage.getStartNode(), 
>> graph);
>> Iterable<Vertex> endNodes = this.getVertexList(storage.getEndNode(), graph);
>>
>> for (Vertex startNode : startNodes)
>> {
>>     for (Vertex endNode : endNodes)
>>     {
>>         String edgeClass = "class:" + storage.getId();
>>         Edge edge = startNode.addEdge(edgeClass, endNode);
>>
>>         for (Map.Entry<String, Object> entry : 
>> storage.getProperties().entrySet())
>>         {
>>             edge.setProperty(entry.getKey(), entry.getValue());
>>         }
>>         edge.setProperty(Constants.TAG_HASH, 
>> HashCreator.sha1FromRelationship(storage));
>>         edge.setProperty(Constants.TAG_SNAPSHOT_ID, snapshotId);
>>     }
>> }
>> graph.commit();
>>
>> And it only detect ingoing vertices not the outgoing ones.
>>
>>
>> Am Freitag, 2. Dezember 2016 23:07:29 UTC-2 schrieb Ray Neiheiser:
>>>
>>> That seems like an option.
>>> But isn't there any option in gremlin/blueprints for it?
>>>
>>> Titan also uses gremlin and I can use:
>>>
>>> GraphTraversal<Vertex, Edge> tempOutput =  
>>> graph.traversal().V(nodeStartList.toArray()).bothE().filter(__.otherV().is(P.within(nodeEndList.toArray())));
>>>
>>> Which will give me exactly what I want.
>>>
>>>
>>> Am Freitag, 2. Dezember 2016 01:23:04 UTC-2 schrieb Ivan Mainetti:
>>>>
>>>> not sure if this may work for you, but you could query via sql 
>>>> something like
>>>>
>>>> select from E where out contains [<start-rid1>, <start-rid2>, <start-
>>>> ridn>] and in contains [<end-rid1>, <end-rid2>, <end-ridn>] and <some-
>>>> property>="something"
>>>>
>>>>
>>>>
>>>> Il giorno mercoledì 30 novembre 2016 15:19:24 UTC+1, Ray Neiheiser ha 
>>>> scritto:
>>>>>
>>>>> I have some performance problems with reading edges depending on their 
>>>>> start and end nodes. Is there a better way than checking every edges end 
>>>>> vertex of every start vertex?
>>>>>
>>>>> Iterable<Vertex> startNodes = 
>>>>> getVertexList(relationshipStorage.getStartNode(), graph);
>>>>>                 Iterable<Vertex> endNodes = 
>>>>> getVertexList(relationshipStorage.getEndNode(), graph);
>>>>>
>>>>>                 List<Edge> list = 
>>>>> StreamSupport.stream(startNodes.spliterator(), false)
>>>>>                         .flatMap(vertex1 -> 
>>>>> StreamSupport.stream(vertex1.getEdges(Direction.OUT, 
>>>>> relationshipId).spliterator(), false))
>>>>>                         .filter(edge -> 
>>>>> StreamSupport.stream(endNodes.spliterator(), false).anyMatch(vertex -> 
>>>>> edge.getVertex(Direction.OUT).equals(vertex)))
>>>>>                         .collect(Collectors.toList());
>>>>>
>>>>>

-- 

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