public Searcher searcher() {
        return new Searcher();
    }
@Test
    void require_that_search_for_simple_conjunctions_work() {
        ConjunctionIndexBuilder builder = new ConjunctionIndexBuilder();

        IndexableFeatureConjunction c1 = indexableConj(
                conj(
                        feature("a").inSet("1"),
                        feature("b").inSet("2")));
        IndexableFeatureConjunction c2 = indexableConj(
                conj(
                        feature("a").inSet("1"),
                        feature("b").inSet("2"),
                        feature("c").inSet("3")));
        IndexableFeatureConjunction c3 = indexableConj(
                conj(
                        feature("a").inSet("1"),
                        feature("b").inSet("5")));

        builder.indexConjunction(c1);
        builder.indexConjunction(c2);
        builder.indexConjunction(c3);
        ConjunctionIndex index = builder.build();
        ConjunctionIndex.Searcher searcher = index.searcher();

        PredicateQuery query = new PredicateQuery();
        query.addFeature("a", "1");
        query.addFeature("b", "2");
        assertHitsEquals(searcher.search(query), c1);
        query.addFeature("c", "3");
        assertHitsEquals(searcher.search(query), c1, c2);
        query.addFeature("b", "5");
        assertHitsEquals(searcher.search(query), c1, c2, c3);
    }