Index: src/test/java/org/apache/jackrabbit/core/query/SimpleQueryTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/core/query/SimpleQueryTest.java (revision 562512) +++ src/test/java/org/apache/jackrabbit/core/query/SimpleQueryTest.java (working copy) @@ -343,7 +343,9 @@ foo.setProperty("mytext", "the quick brown fox jumps over the lazy dog."); Node bar = testRootNode.addNode("bar"); bar.setProperty("text", "the quick brown fox jumps over the lazy dog."); - + // documents which field name is not exactly "mytext" should not match + bar.setProperty("mytextwhichstartswithmytext", "the quick brown fox jumps over the lazy dog."); + testRootNode.save(); String sql = "SELECT * FROM nt:unstructured WHERE mytext is not null"; Index: src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllScorer.java =================================================================== --- src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllScorer.java (revision 562512) +++ src/main/java/org/apache/jackrabbit/core/query/lucene/MatchAllScorer.java (working copy) @@ -153,13 +153,13 @@ // otherwise calculate new docFilter = new BitSet(reader.maxDoc()); // we match all terms - TermEnum terms = reader.terms(new Term(FieldNames.PROPERTIES, field)); + TermEnum terms = reader.terms(new Term(FieldNames.PROPERTIES, FieldNames.createNamedValue(field, ""))); try { TermDocs docs = reader.termDocs(); try { while (terms.term() != null && terms.term().field() == FieldNames.PROPERTIES - && terms.term().text().startsWith(field)) { + && terms.term().text().startsWith(FieldNames.createNamedValue(field, ""))) { docs.seek(terms); while (docs.next()) { docFilter.set(docs.doc());