Nest fluent API のみを使用せずにファセットの構築を制御する方法が必要です。主な必要性は、allterms または facetfilters を含めたり除外したりする必要がある場合があることです。
以下のコードは機能しますが、ファセットを変更するには、再コンパイルする必要があります。Func が必要であることがわかりましたが、これを機能させるために正しい型を返すことができませんでした。
sd.FacetTerm("Name", t => t
.OnField("Field")
.Size(facet.Size)
.AllTerms()
);
以下のコードは機能しません。その理由は確かです。デバッグすると、ファセット用語が作成されますが、「FacetBuilder」が提供するデータはありません。
sd.FacetTerm(facet.Name, t => FacetBuilder(options));
public TermFacetDescriptor<CatalogMapping> FacetBuilder(FacetOptions options)
{
var facet = new TermFacetDescriptor<CatalogMapping>();
facet.OnField(options.Field);
facet.Size(options.Size);
if (options.IncludeAllTerms)
facet.AllTerms();
return facet;
}