我正在索引以下Document类以进行索引:

public class DoctorDocument
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public int Experience { get; set; }
}

我正在使用以下代码搜索索引。
 var node = new Uri("http://localhost:9200");

        var settings = new ConnectionSettings(
            node,
            defaultIndex: "my-application"
        );

        var client = new ElasticClient(settings);

        var searchResults = client.Search<DoctorDocument>(s => s.From(0)
                                                                .Size(100)
                                                                .Query(q =>
                                                                q.Term(t => t.Name, "Deepak Singhal"))
                                                                );

由于某种原因,即使索引中有一个名称“Deepak Singhal”,searchResults也不会返回任何文档。为何没有返回任何指示?

最佳答案

正如@Manolis在评论中指出的那样,Term描述符不适用于空格。字段名称上的MatchQueryDescriptor对我来说效果很好。

var searchResults = client.Search<DoctorDocument>(s => s.From(0)
                                                         .Size(100)
                                                         .Query(q =>
                                                              q.Match(mqd => mqd.OnField("name").Query("Deepak Singhal"))
                                                                ));

07-27 13:59