I'm using NEST to query ElasticSearch and I'm looking to create a conditional filter. I need the query to match on category AND the optional title and chapter fields. I'm doing an aggregate to get unique values. The problem is that the filter seems to be doing an OR on the filter fields. Any ideas what I'm doing wrong in this example?
FilterContainer filter = new FilterContainer();
filter = Filter<Page>.Term("category", "1575");
if (title != null)
{
    filter &= Filter<Page>.Term("title", title);
}
if (chapter != null)
{
    filter &= Filter<Page>.Term("chapter", chapter);
}
var result = client.Search<Page>(s => s
    .Index(index)
    .Filter(filter)
    .Size(0)
    .Aggregations(a => a
        .Terms("my_agg", st => st
            .Field("title")
        )
    )
);
var myAgg = result.Aggs.Terms("my_agg");
IList<KeyItem> lst = myAgg.Items;
return lst;
