我需要一种方法来控制构建方面,而无需仅使用 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;
}