LucenePropertyIndex has support for transforming path when relative property names are used in fulltext search. Consider a case like below
And a query like
/jcr:root//element(*, nt:base)[jcr:contains(jcr:content, 'foo' )]
Here the query uses a relative node name in contains jcr:content and only valid result is /b. Internally the query performed does not have any node name constraint and result in all path. Then while iterating the cursor would transform the path and see if path end with required name or not. If thats not the case then that result is ignored.
This logic works fine for normal cases. But if it so happens that first 50 results (default batch size) got ignored due to name mismatch then cursor would terminate early without looking further for valid result and hence end result appears that no matching results are found