It just misses the rel before the colon

>> MATCH (n:DataModel:CI__DataModel) WHERE n.name={name}
>> OPTIONAL 
>> MATCH(n)-[rel:PARENT|:DISPLAYATTRIBUTE|:CREATEDBY|:APPLICATIONACCESS|:UPDATEDBY|:APPLICATION]->(related)
>>  
>> WITH n, type(rel) as type, collect(related.__id__) as ids
>> RETURN n as data, collect({type:type, ids:ids}) as relatedIds

Von meinem iPhone gesendet

> Am 25.07.2016 um 23:37 schrieb Matias Burak <[email protected]>:
> 
> Thanks Michael. That first query helped a lot.
> The second one is not working. I think it's because you are not defining 
> "rel" anywhere. 
> 
> 
> El domingo, 24 de julio de 2016, 16:14:08 (UTC-3), Michael Hunger escribió:
>> 
>> All your optional matches, what cardinality do they have? at most 1 or more?
>> 
>> If it is > 1 you should reduce the cardinality in between, e.g.
>> 
>> MATCH (n:DataModel:CI__DataModel) WHERE ( n.name='host' ) 
>> OPTIONAL MATCH(n)-[:PARENT]->(parentNode) 
>> WITH n, collect(DISTINCT parentNode.__id__) as parentIds
>> ...
>> 
>> otherwise each subsequent (optional) match has to be executed for all those 
>> multiplied rows.
>> I don't think you need a distinct then if you do the aggregation directly 
>> after each match.
>> 
>> Something else that might help is to rewrite the query to:
>> 
>> MATCH (n:DataModel:CI__DataModel) WHERE n.name={name}
>> OPTIONAL 
>> MATCH(n)-[:PARENT|:DISPLAYATTRIBUTE|:CREATEDBY|:APPLICATIONACCESS|:UPDATEDBY|:APPLICATION]->(related)
>>  
>> WITH n, type(rel) as type, collect(related.__id__) as ids
>> RETURN n as data, collect({type:type, ids:ids}) as relatedIds
>> 
>> 
>> you should also use a parameter for 'host' -> {name} 
>> 
>>> On Sun, Jul 24, 2016 at 9:06 PM, Michael Hunger 
>>> <[email protected]> wrote:
>>> Can you run it with PROFILE instead of EXPLAIN ? So that the actual costs 
>>> are visible not just the estimated ones?
>>> 
>>> Please also share your current indexes/constraints (run "schema")
>>> 
>>> Michael
>>> 
>>>> On Fri, Jul 22, 2016 at 1:09 AM, Matias Burak <[email protected]> wrote:
>>>> Hi all,
>>>> 
>>>> Hi, I need some help with a slow query, tried on neo4j 2.5 and 3.0
>>>> 
>>>> 
>>>> 
>>>> MATCH (n:DataModel:CI__DataModel) WHERE ( n.name='host' ) 
>>>> 
>>>> OPTIONAL MATCH(n)-[:PARENT]->(parentNode) 
>>>> 
>>>> OPTIONAL MATCH(n)-[:DISPLAYATTRIBUTE]->(displayAttributeNode) 
>>>> 
>>>> OPTIONAL MATCH(n)-[:CREATEDBY]->(createdByNode) 
>>>> 
>>>> OPTIONAL MATCH(n)-[:APPLICATIONACCESS]->(applicationAccessNode) 
>>>> 
>>>> OPTIONAL MATCH(n)-[:UPDATEDBY]->(updatedByNode) 
>>>> 
>>>> OPTIONAL MATCH(n)-[:APPLICATION]->(applicationNode) RETURN n as data
>>>> 
>>>> , collect(DISTINCT applicationNode.__id__) as applicationIds, 
>>>> collect(DISTINCT applicationAccessNode.__id__) as applicationAccessIds, 
>>>> collect(DISTINCT createdByNode.__id__) as createdByIds, collect(DISTINCT 
>>>> displayAttributeNode.__id__) as displayAttributeIds, collect(DISTINCT 
>>>> parentNode.__id__) as parentIds, collect(DISTINCT updatedByNode.__id__) as 
>>>> updatedByIds
>>>> 
>>>> 
>>>> 
>>>> It’s taking about 1 sec
>>>> 
>>>> i cannot change much the query… if i remove the APPLICATIONACCESS and 
>>>> UPDATEDBY relationships from that query, it goes very fast
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> I see that it’s doing an AllNodeScan for them:
>>>> 
>>>> 
>>>> 
>>>> Compiler CYPHER 3.0
>>>> 
>>>> 
>>>> 
>>>> Planner COST
>>>> 
>>>> 
>>>> 
>>>> Runtime INTERPRETED
>>>> 
>>>> 
>>>> 
>>>> +----------------------+----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | Operator             | Estimated Rows | Variables                        
>>>>                                                                    | Other 
>>>>                                                                            
>>>>                          |
>>>> 
>>>> +----------------------+----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +ProduceResults      |         862472 | applicationAccessIds, 
>>>> applicationIds, createdByIds, data, displayAttributeIds, parentIds, ...    
>>>>    | data, applicationIds, applicationAccessIds, createdByIds, 
>>>> displayAttributeIds, parentIds, updatedByIds    |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +EagerAggregation    |         862472 | applicationAccessIds, 
>>>> applicationIds, createdByIds, displayAttributeIds, parentIds, ...          
>>>>    | data                                                                  
>>>>                                     |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +Projection          |   743858355653 | data -- anon[120], anon[183], 
>>>> anon[232], anon[297], anon[346], anon[77], applicationAccessNode, ... | 
>>>> updatedByNode; createdByNode; n; displayAttributeNode; 
>>>> applicationAccessNode; applicationNode; parentNode |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +NodeOuterHashJoin   |   743858355653 | anon[120], anon[183], anon[232], 
>>>> anon[297], anon[77], applicationAccessNode, createdByNode, ...     |       
>>>>                                                                            
>>>>                          |
>>>> 
>>>> | |\                   
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | | +Expand(All)       |            101 | anon[346], applicationNode -- n  
>>>>                                                                    | 
>>>> (n)-[:APPLICATION]->(applicationNode)                                      
>>>>                                |
>>>> 
>>>> | | |                  
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | | +AllNodesScan      |         446872 | n                                
>>>>                                                                    |       
>>>>                                                                            
>>>>                          |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +NodeOuterHashJoin   |      426134864 | anon[120], anon[183], anon[232], 
>>>> anon[77], applicationAccessNode, createdByNode, ...                |       
>>>>                                                                            
>>>>                          |
>>>> 
>>>> | |\                   
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | | +Expand(All)       |           2390 | anon[297], n -- updatedByNode    
>>>>                                                                    | 
>>>> (updatedByNode)<-[:UPDATEDBY]-(n)                                          
>>>>                                |
>>>> 
>>>> | | |                  
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | | +AllNodesScan      |         446872 | updatedByNode                    
>>>>                                                                    |       
>>>>                                                                            
>>>>                          |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +OptionalExpand(All) |         771541 | anon[232], applicationAccessNode 
>>>> -- anon[120], anon[183], anon[77], createdByNode, ...              | 
>>>> (n)-[:APPLICATIONACCESS]->(applicationAccessNode)                          
>>>>                                |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +OptionalExpand(All) |            442 | anon[183], createdByNode -- 
>>>> anon[120], anon[77], displayAttributeNode, n, parentNode                | 
>>>> (n)-[:CREATEDBY]->(createdByNode)                                          
>>>>                                |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +OptionalExpand(All) |             65 | anon[120], displayAttributeNode 
>>>> -- anon[77], n, parentNode                                          | 
>>>> (n)-[:DISPLAYATTRIBUTE]->(displayAttributeNode)                            
>>>>                                |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +OptionalExpand(All) |              0 | anon[77], parentNode -- n        
>>>>                                                                    | 
>>>> (n)-[:PARENT]->(parentNode)                                                
>>>>                                |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +Filter              |              0 | n                                
>>>>                                                                    | 
>>>> n.name == {  AUTOSTRING0} AND n:CI__DataModel                              
>>>>                                |
>>>> 
>>>> | |                    
>>>> +----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> | +NodeByLabelScan     |             16 | n                                
>>>>                                                                    | 
>>>> :DataModel                                                                 
>>>>                                |
>>>> 
>>>> +----------------------+----------------+-----------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+
>>>> 
>>>> 
>>>> 
>>>> Total database accesses: ?                                           |     
>>>>                                                                            
>>>>                            |
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> Perhaps some indexes missing?
>>>> 
>>>> 
>>>> I think they should all be indexed by __id__
>>>> 
>>>> 
>>>> 
>>>> Thanks,
>>>> 
>>>> Matias.
>>>> 
>>>> -- 
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "Neo4j" 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 
> "Neo4j" 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 
"Neo4j" 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