Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
10-11-2022 09:21 PM - edited 10-11-2022 09:28 PM
< 1st query >
match (d:Document)-[:HAS_WORD]->(w:Word) where d.site = 1
return w.word order by w.word
==> it returns 6604 records(displaying 1000) under 1 second.
< 2nd query : same with the 1st query except "limit xxx" >
match (d:Document)-[:HAS_WORD]->(w:Word) where d.site = 1
return w.word order by w.word limit 100
==> it runs a circle(processing) and looks to take forever to be finished.
I checked the query plan by "explain":
1st query starts with NodeIndexSeek d / BTREE INDEX d:Document(siteName) WHERE siteName = $autoint_0
2nd query starts with NodeIndexScan r / BTREE INDEX r:Word(word) WHERE word IS NOT NULL, cache[r.word]
Why the query plan is so different? Is it the cause of the problem of the 2nd query? How can I solve the problem and display the list in a limited length to review them? It is tested on Neo4j Enterprise 4.4.8.
10-11-2022 09:39 PM - edited 10-11-2022 09:43 PM
Now I found it(with limit xxx) works normal without "where d.siteName=1" condition.
What's wrong with "where d.siteName=1" in my query? How can I avoid this problem? I need to review the list by its siteName on the monitor.
10-15-2022 06:55 AM
Hello @Dongho 🙂
What are you trying to achieve with your query? Can you share your data model? On which properties did you create indexes/constraints?
Regards,
Cobra
All the sessions of the conference are now available online