我需要一种方法来控制构建方面,而不仅使用巢式流利的api。主要需求是我可能需要包括或排除所有项或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;
}
最佳答案
需要传递一个对象引用并修改该实例。
public TermFacetDescriptor<CatalogMapping> FacetBuilder(TermFacetDescriptor<CatalogMapping> termFacet, FacetOptions options)
{
termFacet.OnField(options.Field);
termFacet.Size(options.Size);
if (options.IncludeAllTerms)
termFacet.AllTerms();
return termFacet;
}
关于c# - 使用Nest Client进行Elastic Search中的动态构面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13916265/