解释 NEST API 中的参数定义

Explain argument definition of in NEST API

// Summary:
//     The text_phrase_prefix is the same as text_phrase, expect it allows for prefix
//     matches on the last term in the text

public QueryContainer MatchPhrasePrefix<T>(Func<MatchPhrasePrefixQueryDescriptor<T>, IMatchQuery> selector);

谁能解释一下 Func<MatchPhrasePrefixQueryDescriptor<T>, IMatchQuery> 是什么?

这是一种接受 delegate/method/lambda 表达式作为参数的方法,它本身接受 MatchPhrasePrefixQueryDescriptor<T> 作为参数,returns 是 IMatchQuery 实例。

它是NEST, the high level .NET Elasticsearch client. The client supports both fluent API and an object initializer syntax.的流利API的一部分 正如其他人指出的那样,该方法是通用的,MatchPhrasePrefix<T>

使用

public class Document
{
    public string Property1 { get; set; }
}

var searchResponse = client.Search<Document>(s => s
    .Query(q => q
        .MatchPhrasePrefix(p => p
            .Field(f => f.Property1)
            .Query("Prefix phrase")
        )
    )
);