Why does Neo4J tell me that there is no spoon?

I use Neo4J to represent texts; in the simplest case, the text is a sequence of words connected by the relation LEMMA_TEXT.

I am trying to find the Nth word after a known query word that looks something like this.

MATCH (anchor)-[:LEMMA_TEXT*32]->(word) WHERE id(anchor) = 3275 RETURN word 

In one specific case, if I increase the path length to 33, I get this error:

 Neo.DatabaseError.Statement.ExecutionFailure: There is no spoon. 

And yet the following query returns the correct result.

 MATCH (anchor)-[:LEMMA_TEXT*32]->(word)-[:LEMMA_TEXT]->(next) WHERE id(anchor) = 3275 RETURN next 

which shows that node I want to exist and is accessible.

Where is the section of the manual that tells me how to bend a spoon with my mind? More importantly, what does that mean ?!

+45
neo4j cypher
May 27 '15 at 20:12
source share
2 answers

If something breaks at number 33, it means that there is a limit to 32, why 32? 2 ^ 5.

It is not trivial that most restrictions have a coefficient of 2, the size of a MongoDB document cannot be more than 16 MB, the collection can have a maximum index of no more than 64. etc.

why it works like 32, and then the next one, because up to 32 it can reach in one operation, and for the latter it can see the next as another operation. But in one operation, he cannot work 33.

Most of these limitations are mainly a performance test, although it does not have a technical border.

As for why it is almost always a factor of 2, I want someone else to answer or, in other words, I don't know.

+2
Nov 16 '16 at 2:37
source share

Have you tried to beat landing and search applications in 2?

Plus you have to add a label for the text word (limit)

Example:

  MATCH (anchor)
 WHERE id (anchor) = 3275 
 WITH anchor
 MATCH (anchor) - [: LEMMA_TEXT * 32] -> (word) 
 Return word

Are you getting the same error?

0
Oct 07 '16 at 9:21
source share



All Articles