Esempio n. 1
0
  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());
  }
Esempio n. 2
0
 public void testShouldsAndMusts() throws Exception {
   BooleanFilter booleanFilter = new BooleanFilter();
   booleanFilter.add(getRangeFilter("price", "010", "020"), Occur.SHOULD);
   booleanFilter.add(getRangeFilter("price", "020", "030"), Occur.SHOULD);
   booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST);
   booleanFilter.add(getRangeFilter("date", "20040101", "20041231"), Occur.MUST);
   tstFilterCard("Shoulds Ored but MUSTs ANDED", 1, booleanFilter);
 }
Esempio n. 3
0
  public void testJustMustNot() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("inStock", "N"), Occur.MUST_NOT);
    tstFilterCard("MUST_NOT", 4, booleanFilter);

    // same with a real DISI (no OpenBitSetIterator)
    booleanFilter = new BooleanFilter();
    booleanFilter.add(getWrappedTermQuery("inStock", "N"), Occur.MUST_NOT);
    tstFilterCard("MUST_NOT", 4, booleanFilter);
  }
Esempio n. 4
0
  public void testJustMust() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST);
    tstFilterCard("MUST", 3, booleanFilter);

    // same with a real DISI (no OpenBitSetIterator)
    booleanFilter = new BooleanFilter();
    booleanFilter.add(getWrappedTermQuery("accessRights", "admin"), Occur.MUST);
    tstFilterCard("MUST", 3, booleanFilter);
  }
Esempio n. 5
0
  public void testShould() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("price", "030"), Occur.SHOULD);
    tstFilterCard("Should retrieves only 1 doc", 1, booleanFilter);

    // same with a real DISI (no OpenBitSetIterator)
    booleanFilter = new BooleanFilter();
    booleanFilter.add(getWrappedTermQuery("price", "030"), Occur.SHOULD);
    tstFilterCard("Should retrieves only 1 doc", 1, booleanFilter);
  }
Esempio n. 6
0
  public void testMustAndMustNot() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("inStock", "N"), Occur.MUST);
    booleanFilter.add(getTermsFilter("price", "030"), Occur.MUST_NOT);
    tstFilterCard("MUST_NOT wins over MUST for same docs", 0, booleanFilter);

    // same with a real DISI (no OpenBitSetIterator)
    booleanFilter = new BooleanFilter();
    booleanFilter.add(getWrappedTermQuery("inStock", "N"), Occur.MUST);
    booleanFilter.add(getWrappedTermQuery("price", "030"), Occur.MUST_NOT);
    tstFilterCard("MUST_NOT wins over MUST for same docs", 0, booleanFilter);
  }
Esempio n. 7
0
  public void testShouldsAndMust() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getRangeFilter("price", "010", "020"), Occur.SHOULD);
    booleanFilter.add(getRangeFilter("price", "020", "030"), Occur.SHOULD);
    booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST);
    tstFilterCard("Shoulds Ored but MUST", 3, booleanFilter);

    // same with a real DISI (no OpenBitSetIterator)
    booleanFilter = new BooleanFilter();
    booleanFilter.add(getRangeFilter("price", "010", "020"), Occur.SHOULD);
    booleanFilter.add(getRangeFilter("price", "020", "030"), Occur.SHOULD);
    booleanFilter.add(getWrappedTermQuery("accessRights", "admin"), Occur.MUST);
    tstFilterCard("Shoulds Ored but MUST", 3, booleanFilter);
  }
Esempio n. 8
0
  public void testJustNullDocIdSets() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISFilter(), Occur.MUST);
    tstFilterCard(
        "A MUST filter that returns a null DIS should never return documents", 0, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISIFilter(), Occur.MUST);
    tstFilterCard(
        "A MUST filter that returns a null DISI should never return documents", 0, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISFilter(), Occur.SHOULD);
    tstFilterCard(
        "A single SHOULD filter that returns a null DIS should never return documents",
        0,
        booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISIFilter(), Occur.SHOULD);
    tstFilterCard(
        "A single SHOULD filter that returns a null DISI should never return documents",
        0,
        booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISFilter(), Occur.MUST_NOT);
    tstFilterCard(
        "A single MUST_NOT filter that returns a null DIS should be invisible", 5, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISIFilter(), Occur.MUST_NOT);
    tstFilterCard(
        "A single MUST_NOT filter that returns a null DIS should be invisible", 5, booleanFilter);
  }
Esempio n. 9
0
  public void testShouldsAndMustsAndMustNot() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getRangeFilter("price", "030", "040"), Occur.SHOULD);
    booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST);
    booleanFilter.add(getRangeFilter("date", "20050101", "20051231"), Occur.MUST);
    booleanFilter.add(getTermsFilter("inStock", "N"), Occur.MUST_NOT);
    tstFilterCard("Shoulds Ored but MUSTs ANDED and MustNot", 0, booleanFilter);

    // same with a real DISI (no OpenBitSetIterator)
    booleanFilter = new BooleanFilter();
    booleanFilter.add(getRangeFilter("price", "030", "040"), Occur.SHOULD);
    booleanFilter.add(getWrappedTermQuery("accessRights", "admin"), Occur.MUST);
    booleanFilter.add(getRangeFilter("date", "20050101", "20051231"), Occur.MUST);
    booleanFilter.add(getWrappedTermQuery("inStock", "N"), Occur.MUST_NOT);
    tstFilterCard("Shoulds Ored but MUSTs ANDED and MustNot", 0, booleanFilter);
  }
Esempio n. 10
0
  public void testNonMatchingShouldsAndMusts() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getEmptyFilter(), Occur.SHOULD);
    booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST);
    tstFilterCard(">0 shoulds with no matches should return no docs", 0, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISFilter(), Occur.SHOULD);
    booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST);
    tstFilterCard(">0 shoulds with no matches should return no docs", 0, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getNullDISIFilter(), Occur.SHOULD);
    booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST);
    tstFilterCard(">0 shoulds with no matches should return no docs", 0, booleanFilter);
  }
Esempio n. 11
0
  public void testShouldsAndMustNot() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getRangeFilter("price", "010", "020"), Occur.SHOULD);
    booleanFilter.add(getRangeFilter("price", "020", "030"), Occur.SHOULD);
    booleanFilter.add(getTermsFilter("inStock", "N"), Occur.MUST_NOT);
    tstFilterCard("Shoulds Ored but AndNot", 4, booleanFilter);

    booleanFilter.add(getTermsFilter("inStock", "Maybe"), Occur.MUST_NOT);
    tstFilterCard("Shoulds Ored but AndNots", 3, booleanFilter);

    // same with a real DISI (no OpenBitSetIterator)
    booleanFilter = new BooleanFilter();
    booleanFilter.add(getRangeFilter("price", "010", "020"), Occur.SHOULD);
    booleanFilter.add(getRangeFilter("price", "020", "030"), Occur.SHOULD);
    booleanFilter.add(getWrappedTermQuery("inStock", "N"), Occur.MUST_NOT);
    tstFilterCard("Shoulds Ored but AndNot", 4, booleanFilter);

    booleanFilter.add(getWrappedTermQuery("inStock", "Maybe"), Occur.MUST_NOT);
    tstFilterCard("Shoulds Ored but AndNots", 3, booleanFilter);
  }
Esempio n. 12
0
  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());
  }
Esempio n. 13
0
  public void testCombinedNullDocIdSets() throws Exception {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("price", "030"), Occur.MUST);
    booleanFilter.add(getNullDISFilter(), Occur.MUST);
    tstFilterCard(
        "A MUST filter that returns a null DIS should never return documents", 0, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("price", "030"), Occur.MUST);
    booleanFilter.add(getNullDISIFilter(), Occur.MUST);
    tstFilterCard(
        "A MUST filter that returns a null DISI should never return documents", 0, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("price", "030"), Occur.SHOULD);
    booleanFilter.add(getNullDISFilter(), Occur.SHOULD);
    tstFilterCard("A SHOULD filter that returns a null DIS should be invisible", 1, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("price", "030"), Occur.SHOULD);
    booleanFilter.add(getNullDISIFilter(), Occur.SHOULD);
    tstFilterCard("A SHOULD filter that returns a null DISI should be invisible", 1, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("price", "030"), Occur.MUST);
    booleanFilter.add(getNullDISFilter(), Occur.MUST_NOT);
    tstFilterCard(
        "A MUST_NOT filter that returns a null DIS should be invisible", 1, booleanFilter);

    booleanFilter = new BooleanFilter();
    booleanFilter.add(getTermsFilter("price", "030"), Occur.MUST);
    booleanFilter.add(getNullDISIFilter(), Occur.MUST_NOT);
    tstFilterCard(
        "A MUST_NOT filter that returns a null DISI should be invisible", 1, booleanFilter);
  }
Esempio n. 14
0
 public void testShoulds() throws Exception {
   BooleanFilter booleanFilter = new BooleanFilter();
   booleanFilter.add(getRangeFilter("price", "010", "020"), Occur.SHOULD);
   booleanFilter.add(getRangeFilter("price", "020", "030"), Occur.SHOULD);
   tstFilterCard("Shoulds are Ored together", 5, booleanFilter);
 }