yes the profile output is:
==> 349 rows
==>
==> ColumnFilter(symKeys=["fof.uid", "
INTERNAL_AGGREGATE5eb96885-2c8f-4f4c-b7cc-97dc148280b4"],
returnItemNames=["fof.uid", "collect(distinct id(f))"], _rows=349,
_db_hits=0)
==> EagerAggregation(keys=["Cached(fof.uid of type Any)"], aggregates=["(
INTERNAL_AGGREGATE5eb96885-2c8f-4f4c-b7cc-97dc148280b4,Distinct(Collect(IdFunction(f)),IdFunction(f)))"],
_rows=349, _db_hits=0)
==> Extract(symKeys=["fof", "f", " UNNAMED50", "me", "p", "
UNNAMED43"], exprKeys=["fof.uid"], _rows=11671, _db_hits=11671)
==> ExtractPath(name="p", patterns=["ParsedRelation(
UNNAMED43,Map(),ParsedEntity(me,me,Map(uuid ->
Literal(D0Y91L0N)),List(Person(0))),ParsedEntity(f,f,Map(),List()),List(),BOTH,false)",
"ParsedVarLengthRelation(
UNNAMED50,Map(),ParsedEntity(f,f,Map(),List()),ParsedEntity(fof,fof,Map(),List()),List(),BOTH,false,Some(0),Some(2),None)"],
_rows=11671, _db_hits=0)
==> Filter(pred="Property(fof,uid(1)) > Literal(0)", _rows=11671,
_db_hits=140618)
==> TraversalMatcher(start={"label": "Person", "query":
"Literal(D0Y91L0N)", "identifiers": ["me"], "property": "uuid", "producer":
"SchemaIndex"}, trail="(me)-[ UNNAMED43 WHERE true AND
true]-(f)-[*0..2]-(fof)", _rows=140618, _db_hits=145079)
Thanks Michael
在 2014年12月2日星期二UTC+8下午7时12分44秒,Michael Hunger写道:
>
> Can you share the profile output?
>
> prefix your query with "profile" in the bin/neo4j-shell or
> http://localhost:7474/webadmin/#/console/
>
> On Tue, Dec 2, 2014 at 9:34 AM, li chris <[email protected] <javascript:>>
> wrote:
>
>> thanks Michael,
>>
>> I have created uniqueness constraint like this:CREATE CONSTRAINT ON
>> (person:Person) ASSERT person.uuid IS UNIQUE
>>
>> there is only one relationship-type and direction is not useful in my
>> application.
>>
>> uuid is the user id from facebook, uid is the user id of my application
>>
>> the result has many repeated uid if no distinct
>>
>> now the query is:
>>
>> MATCH p = (me:Person{uuid:'D0Y91L0N'})-[]-(f)-[*0..2]-(fof)
>> WHERE fof.uid > 0
>> RETURN distinct fof.uid, collect(distinct id(f))
>>
>>
>>
>> 在 2014年12月2日星期二UTC+8上午2时57分23秒,Michael Hunger写道:
>>>
>>> create index on :Person (uuid);
>>>
>>> what kinds of relationship-types do you have?
>>>
>>> Try to a dd a direction:
>>>
>>> depending on your avg relationship-count, you might visit rels^steps
>>> paths, e.g. for 100 rels per person and you have up to 4 steps it is 100^4
>>> or 100M paths
>>>
>>> You also have a typo in your query fof.uid should probably be fof.uuid
>>> same in the return clause ??
>>> Also you treat uid as numeric while uuid seems to be string ?
>>>
>>> if you do aggregation you don't need distinct
>>> and it doesnt really make sense to aggregate friends by friends of
>>> friends
>>>
>>> MATCH p = (me:Person{uuid:'D0Y91L0N'})-[]->(f)-[*0..3]->(fof)
>>> WHERE fof.uid > 0
>>> WITH distinct fof.uid, collect(distinct id(f))
>>>
>>> I think it would help to take the Neo4j online training again.
>>> http://neo4j.com/online-training
>>>
>>>
>>> Cheers, Michael
>>>
>>> On Sun, Nov 30, 2014 at 11:07 AM, li chris <[email protected]> wrote:
>>>
>>>> Hi all,
>>>> I'm leaning to use neo4j for relation analysis recently. Today I found
>>>> it took too long for my cypher query took to finish.
>>>>
>>>> neo4j version: 2.0.2
>>>> nodes num: 350,000
>>>> relation num: 370,000
>>>> cypher query:
>>>>
>>>> MATCH p = (me:Person{uuid:'D0Y91L0N'})-[]-(f)-[*0..3]-(fof)
>>>> WHERE fof.uid > 0
>>>> WITH distinct fof.uid, collect(distinct id(f))
>>>>
>>>>
>>>> the query take 37s for 346 rows.
>>>>
>>>> What should I do to improve my query performance? Any suggestions would
>>>> be appreciated!
>>>>
>>>> Thanks in advance.
>>>>
>>>> chris
>>>>
>>>> --
>>>> 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] <javascript:>.
>> 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.