Index: lucene/contrib/queries/src/test/org/apache/lucene/search/BooleanFilterTest.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- lucene/contrib/queries/src/test/org/apache/lucene/search/BooleanFilterTest.java (revision 1328357) +++ lucene/contrib/queries/src/test/org/apache/lucene/search/BooleanFilterTest.java (revision ) @@ -301,4 +301,35 @@ booleanFilter.add(getNullDISIFilter(), Occur.MUST_NOT); tstFilterCard("A single MUST_NOT filter that returns a null DIS should be invisible", 5, booleanFilter); } + + public void testToStringOfBooleanFilterContainingTermsFilter() { + BooleanFilter booleanFilter = new BooleanFilter(); + booleanFilter.add(getTermsFilter("inStock", "N"), Occur.MUST); + booleanFilter.add(getTermsFilter("isFragile", "Y"), Occur.MUST); + + assertEquals("BooleanFilter(+inStock:N +isFragile:Y)", booleanFilter.toString()); + } + + + public void testToStringOfWrappedBooleanFilters() { + BooleanFilter orFilter = new BooleanFilter(); + + BooleanFilter stockFilter = new BooleanFilter(); + stockFilter.add(new FilterClause(getTermsFilter("inStock", "Y"), Occur.MUST)); + stockFilter.add(new FilterClause(getTermsFilter("barCode", "12345678"), Occur.MUST)); + + orFilter.add(new FilterClause(stockFilter,Occur.SHOULD)); + + + BooleanFilter productPropertyFilter = new BooleanFilter(); + productPropertyFilter.add(new FilterClause(getTermsFilter("isHeavy", "N"), Occur.MUST)); + productPropertyFilter.add(new FilterClause(getTermsFilter("isDamaged", "Y"), Occur.MUST)); + + orFilter.add(new FilterClause(productPropertyFilter,Occur.SHOULD)); + + BooleanFilter composedFilter = new BooleanFilter(); + composedFilter.add(new FilterClause(orFilter,Occur.MUST)); + + assertEquals("BooleanFilter(+BooleanFilter(BooleanFilter(+inStock:Y +barCode:12345678) BooleanFilter(+isHeavy:N +isDamaged:Y)))", composedFilter.toString()); + } } Index: lucene/contrib/queries/src/java/org/apache/lucene/search/TermsFilter.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- lucene/contrib/queries/src/java/org/apache/lucene/search/TermsFilter.java (revision 1328357) +++ lucene/contrib/queries/src/java/org/apache/lucene/search/TermsFilter.java (revision ) @@ -98,5 +98,15 @@ } return hash; } - + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + for(Term term:terms){ + builder.append(term.field()) + .append(":") + .append(term.text()); + } + return builder.toString(); + } }