From 6759c60b417a1e4bc812c7514f7d00c4cad673eb Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Fri, 2 Mar 2007 08:39:19 +0000 Subject: [PATCH] Fix parsing of stop words to a null query to generate an approriate non matching query git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5261 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../search/impl/lucene/LuceneQueryParser.java | 64 ++++++++++++++++++- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java index 98f9fafac5..9d291159d0 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java @@ -181,6 +181,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -194,6 +198,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -418,6 +426,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -431,6 +443,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -497,6 +513,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -630,6 +650,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -659,6 +683,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -688,6 +716,10 @@ public class LuceneQueryParser extends QueryParser { query.add(part, Occur.SHOULD); } + else + { + query.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return query; } @@ -826,6 +858,10 @@ public class LuceneQueryParser extends QueryParser { booleanQuery.add(subQuery, Occur.SHOULD); } + else + { + booleanQuery.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } return booleanQuery; } @@ -871,6 +907,10 @@ public class LuceneQueryParser extends QueryParser { subQuery.add(localeQuery, Occur.SHOULD); } + else + { + subQuery.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } else { @@ -879,6 +919,10 @@ public class LuceneQueryParser extends QueryParser { subQuery.add(localeQuery, Occur.SHOULD); } + else + { + subQuery.add(new TermQuery(new Term("NO_TOKENS", "__")), Occur.SHOULD); + } } } booleanQuery.add(subQuery, Occur.MUST); @@ -887,13 +931,29 @@ public class LuceneQueryParser extends QueryParser } else { - return subQueryBuilder.getQuery(expandedFieldName, queryText); + Query query = subQueryBuilder.getQuery(expandedFieldName, queryText); + if(query != null) + { + return query; + } + else + { + return new TermQuery(new Term("NO_TOKENS", "__")); + } } } else { - return subQueryBuilder.getQuery(expandedFieldName, queryText); + Query query = subQueryBuilder.getQuery(expandedFieldName, queryText); + if(query != null) + { + return query; + } + else + { + return new TermQuery(new Term("NO_TOKENS", "__")); + } } }