1

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;
    }
4

1 に答える 1

2

オブジェクト参照を渡し、そのインスタンスを変更する必要があります。

public TermFacetDescriptor<CatalogMapping> FacetBuilder(TermFacetDescriptor<CatalogMapping> termFacet, FacetOptions options)
    {
        termFacet.OnField(options.Field);
        termFacet.Size(options.Size);

        if (options.IncludeAllTerms)
            termFacet.AllTerms();

        return termFacet;
    }
于 2012-12-17T15:10:44.793 に答える