This issue has been fixed and will be included in the next milestone. 2014-03-08 19:29 GMT+01:00 Tom Zeppenfeldt <[email protected]>:
> And yes.. it happens with other queries as well .. > > and query times are a lot longer then expected with a db of this size, > although I indexed the crucial parts. > > neo4j-sh (?)$ schema > > Indexes > ON :Person(id) ONLINE (for uniqueness constraint) > ON :Term(id) ONLINE > ON :instantie(id) ONLINE > ON :jurt(jurt_id) ONLINE > ON :rechter(id) ONLINE > > Constraints > ON (person:Person) ASSERT person.id IS UNIQUE > > On Saturday, 8 March 2014 18:34:17 UTC+1, Michael Hunger wrote: > >> Hi Tom, >> >> does this happen with any database? I.e. imported by your load-csv script? >> >> I asked my colleagues to look into it. Perhaps related to some changes in >> the relationship-store in Neo4j 2.1 >> >> Do you see similar behavior also for other queries? >> >> Cheers, >> >> Michael >> >> ---- >> (michael <http://twitter.com/mesirii>}-[:SUPPORTS]->(*YOU*)-[:USE]->( >> Neo4j <http://neo4j.org>) >> Learn Online <http://neo4j.org/learn/online_course>, >> Offline<http://www.neo4j.org/events> or >> Read a Book <http://graphdatabases.com> (in Deutsch<http://bit.ly/das-buch> >> ) >> We're trading T-shirts for cool GraphGist Models<http://bit.ly/graphgist> >> >> >> >> >> >> Am 07.03.2014 um 23:02 schrieb Tom Zeppenfeldt <[email protected]>: >> >> I have a graph db with about 10000 docs (:jurt) and about 12000 terms >> (t:Term) from a vocabulary. There are about 1.2M relationships of type >> (j:jurt)-[:HAS_TERM]->(t:Term) >> >> To find out which documents are similar to a given document, based on a >> count of common terms, I use this query >> >> match (j1:jurt)-[:HAS_TERM]->(t:Term)<-[:HAS_TERM]-(j2:jurt) >> where NOT (id(j1)=id(j2)) AND j1.jurt_id = 'J75312' >> with j1,j2,count(t) as commonterms >> return j1.jurt_id,j2.jurt_id,commonterms >> order by commonterms desc >> limit 3 >> >> What I notice is that the first time the query is run, the results are >> different from the next times... from the second time onwards, the results >> are the same. In between, there are no other processes running.. >> Whether I run the queries from the browser, the shell or the REST API, >> they all show the same phenomenon. >> >> neo4j-sh (?)$ match (j1:jurt)-[:HAS_TERM]->(t:Term)<-[:HAS_TERM]-(j2:jurt) >> where NOT (id(j1)=id(j2)) AND j1.jurt_id = 'J72887' with j1,j2,count(t) as >> commonterms return j1.jurt_id,j2.jurt_id,commonterms order by >> commonterms desc limit 3; >> >> +---------------------------------------+ >> >> | j1.jurt_id | j2.jurt_id | commonterms | >> >> +---------------------------------------+ >> >> | "J72887" | "J70059" | 226 | >> >> | "J72887" | "J75312" | 220 | >> >> | "J72887" | "J77444" | 215 | >> >> +---------------------------------------+ >> >> 3 rows >> >> 6288 ms >> >> neo4j-sh (?)$ match (j1:jurt)-[:HAS_TERM]->(t:Term)<-[:HAS_TERM]-(j2:jurt) >> where NOT (id(j1)=id(j2)) AND j1.jurt_id = 'J72887' with j1,j2,count(t) as >> commonterms return j1.jurt_id,j2.jurt_id,commonterms order by >> commonterms desc limit 3; >> >> +---------------------------------------+ >> >> | j1.jurt_id | j2.jurt_id | commonterms | >> >> +---------------------------------------+ >> >> | "J72887" | "J70059" | 227 | >> >> | "J72887" | "J75312" | 220 | >> >> | "J72887" | "J77444" | 219 | >> >> +---------------------------------------+ >> >> 3 rows >> >> 6299 ms >> >> neo4j-sh (?)$ match (j1:jurt)-[:HAS_TERM]->(t:Term)<-[:HAS_TERM]-(j2:jurt) >> where NOT (id(j1)=id(j2)) AND j1.jurt_id = 'J72887' with j1,j2,count(t) as >> commonterms return j1.jurt_id,j2.jurt_id,commonterms order by >> commonterms desc limit 3; >> >> +---------------------------------------+ >> >> | j1.jurt_id | j2.jurt_id | commonterms | >> >> +---------------------------------------+ >> >> | "J72887" | "J70059" | 227 | >> >> | "J72887" | "J75312" | 220 | >> >> | "J72887" | "J77444" | 219 | >> >> +---------------------------------------+ >> >> 3 rows >> >> 6354 ms >> >> neo4j-sh (?)$ match (j1:jurt)-[:HAS_TERM]->(t:Term)<-[:HAS_TERM]-(j2:jurt) >> where NOT (id(j1)=id(j2)) AND j1.jurt_id = 'J72887' with j1,j2,count(t) as >> commonterms return j1.jurt_id,j2.jurt_id,commonterms order by >> commonterms desc limit 3; >> >> +---------------------------------------+ >> >> | j1.jurt_id | j2.jurt_id | commonterms | >> >> +---------------------------------------+ >> >> | "J72887" | "J70059" | 227 | >> >> | "J72887" | "J75312" | 220 | >> >> | "J72887" | "J77444" | 219 | >> >> +---------------------------------------+ >> >> 3 rows >> >> 6108 ms >> >> >> What may cause this ? >> >> -- >> 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. > -- Mattias Persson, [[email protected]] Hacker, Neo Technology www.neotechnology.com -- 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.
