Author: echatellier Date: 2011-06-30 16:51:03 +0200 (Thu, 30 Jun 2011) New Revision: 1014 Url: http://nuiton.org/repositories/revision/wikitty/1014 Log: Correction de la restriction not (s'ecrit : tout sauf la restriction du not) Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java Modified: trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java =================================================================== --- trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-30 14:29:20 UTC (rev 1013) +++ trunk/wikitty-lucene/src/main/java/org/nuiton/wikitty/storage/lucene/Restriction2Lucene.java 2011-06-30 14:51:03 UTC (rev 1014) @@ -33,6 +33,7 @@ import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanClause.Occur; import org.apache.lucene.search.BooleanQuery; +import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.TermRangeQuery; @@ -314,9 +315,9 @@ // TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", true, true); BooleanQuery query = new BooleanQuery(); - query.add(new TermQuery(new Term(fieldName, "*")), BooleanClause.Occur.MUST); + query.add(new TermQuery(new Term(fieldName, "*")), Occur.MUST); TermRangeQuery rangeQuery = new TermRangeQuery(fieldName, "*", value, true, true); - query.add(rangeQuery, BooleanClause.Occur.MUST_NOT); + query.add(rangeQuery, Occur.MUST_NOT); return query; } @@ -333,9 +334,9 @@ //TermRangeQuery query = new TermRangeQuery(fieldName, value, "*", false, false); BooleanQuery query = new BooleanQuery(); - query.add(new TermQuery(new Term(fieldName, "*")), BooleanClause.Occur.MUST); + query.add(new TermQuery(new Term(fieldName, "*")), Occur.MUST); TermRangeQuery rangeQuery = new TermRangeQuery(fieldName, "*", value, false, false); - query.add(rangeQuery, BooleanClause.Occur.MUST_NOT); + query.add(rangeQuery, Occur.MUST_NOT); return query; } @@ -387,7 +388,8 @@ Term term = new Term(field, restriction.getValue()); TermQuery query = new TermQuery(term); BooleanQuery bquery = new BooleanQuery(); - bquery.add(query, BooleanClause.Occur.MUST_NOT); + bquery.add(new MatchAllDocsQuery(), Occur.MUST); + bquery.add(query, Occur.MUST_NOT); return bquery; } @@ -405,7 +407,7 @@ BooleanQuery query = new BooleanQuery(); for (Restriction restriction : or.getRestrictions()) { Query subQuery = toLucene(restriction); - query.add(subQuery, BooleanClause.Occur.SHOULD); + query.add(subQuery, Occur.SHOULD); } return query; } @@ -424,31 +426,31 @@ BooleanQuery query = new BooleanQuery(); for (Restriction restriction : and.getRestrictions()) { Query subQuery = toLucene(restriction); - query.add(subQuery, BooleanClause.Occur.MUST); + query.add(subQuery, Occur.MUST); } return query; } protected Query true2Lucene() { // *:* - Query query = new TermQuery(new Term("*", "*")); + Query query = new MatchAllDocsQuery(); return query; } protected Query false2Lucene() { // *:* - *:* BooleanQuery query = new BooleanQuery(); - query.add(true2Lucene(), BooleanClause.Occur.SHOULD); - query.add(true2Lucene(), BooleanClause.Occur.MUST_NOT); + query.add(new MatchAllDocsQuery(), Occur.SHOULD); + query.add(new MatchAllDocsQuery(), Occur.MUST_NOT); return query; } protected Query not2Lucene(Not not) { // *:* - *:* BooleanQuery query = new BooleanQuery(); - query.add(true2Lucene(), BooleanClause.Occur.SHOULD); + query.add(new MatchAllDocsQuery(), Occur.SHOULD); Query subQuery = toLucene(not.getRestriction()); - query.add(subQuery, BooleanClause.Occur.MUST_NOT); + query.add(subQuery, Occur.MUST_NOT); return query; } }