Guess Hall wasn't what i thought it to be. Thanks for letting me know about the performance.
On Fri, 1 Feb 2019, 8:43 pm Ismael Rodríguez Brena < ismarodrigue...@gmail.com wrote: > Thanks Lalit for your quick answer !!! > > I will re design a bit the system, because the solution you gave me I am > not sure it fits to another test that I have since the relation between > Paintings is not transitive. Since Painting_1 can be related to Painting_2 > and to Painting_3 but this two last may not be related. And in this case I > don't know how to implement the solution you give. About the second part of > the solution I didn't see any particular change of performance. > > Thanks again! > > El viernes, 1 de febrero de 2019, 7:38:43 (UTC+1), Lalit Singh escribió: >> >> I would recommend changing your Schema to something like: >> [image: image.png] >> >> Because it will reduce *number of relationships *between Piece nodes >> from *n^2 to n*. And your query can then be something like: >> >> MATCH >> (Paiting_1:Piece)-[:IN_HALL]->(Common_hall:Hall)<-[:IN_HALL]-(Paiting_2:Piece) >> MATCH (Red_1:Color) >> MATCH (Blue_1:Color) >> WHERE Red_1.name CONTAINS 'Cherry' >> AND Blue_1.name CONTAINS 'Sea' >> AND NOT Paiting_1.name CONTAINS Paiting_2.name >> AND (Red_1)-[:IS_IN]->(Paiting_1) >> AND (Blue_1)-[:IS_IN]->(Paiting_2) >> RETURN Paiting_1.name, >> Paiting_2.name >> >> *Please share if there is a decrease in time by doing above and also >> after try changing the order of conditions like:* >> >> MATCH (Paiting_1:Piece) >> MATCH (Red_1:Color) >> MATCH (Paiting_2:Piece) >> MATCH (Blue_1:Color) >> WHERE Red_1.name CONTAINS 'Cherry' >> AND Blue_1.name CONTAINS 'Sea' >> AND NOT Paiting_1.name CONTAINS Paiting_2.name >> AND (Paiting_1)-[:IN_SAME_HALL]->(Paiting_2) >> AND (Red_1)-[:IS_IN]->(Paiting_1) >> AND (Blue_1)-[:IS_IN]->(Paiting_2) >> RETURN Paiting_1.name, >> Paiting_2.name >> >> >> *Thanks & Regards* >> *Lalit Kumar Singh | Software Developer* >> >> >> On Thu, Jan 31, 2019 at 5:39 AM Ismael Rodríguez Brena < >> ismarod...@gmail.com> wrote: >> >>> Hi everybody, >>> >>> I am complete beginner with Neo4j and I am trying to do an script which >>> find patterns (particular subgraphs) in the Database. >>> My query looks something like this: >>> >>> MATCH (Paiting_1:Piece) >>> MATCH (Red_1:Color) >>> MATCH (Paiting_2:Piece) >>> MATCH (Blue_1:Color) >>> WHERE Red_1.name CONTAINS 'Cherry' >>> AND Blue_1.name CONTAINS 'Sea' >>> AND NOT Paiting_1.name CONTAINS Paiting_2.name >>> AND (Red_1)-[:IS_IN]->(Paiting_1) >>> AND (Blue_1)-[:IS_IN]->(Paiting_2) >>> AND (Paiting_1)-[:IN_SAME_HALL]->(Paiting_2) >>> RETURN Paiting_1.name, >>> Paiting_2.name >>> >>> This query gets me the expected result, but as soon the size of the >>> subgraphs I am looking grows, the times need to answer the query increases >>> exponentially. >>> Probably there is a more fancy and efficient way to do it, but I haven't >>> found it yet. >>> >>> Best, >>> Ismael >>> >>> -- >>> 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 neo4j+un...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> IMPORTANT: >> NEVER share your IndiaMART OTP/ Password with anyone. >> > -- > 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 neo4j+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- IMPORTANT: NEVER share your IndiaMART OTP/ Password with anyone. -- 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 neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.