elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

对嵌套C#不返回结果,但查询DSL返回结果

对嵌套C#不返回结果,但查询DSL返回结果,c#,elasticsearch,nest,C#,elasticsearch,Nest,我有这个查询DSL,当我直接在ElasticSearch查询时,它返回正确的结果 GET /person/_search { "query": { "match": { "nameDetails.nameValue.firstName": { "query": "Fawsu" } } } } }

我有这个查询DSL,当我直接在ElasticSearch查询时,它返回正确的结果

GET /person/_search
{
  "query": {
    "match": {
          "nameDetails.nameValue.firstName": {
            "query": "Fawsu"
          }
        }
    }
  }
}
但在NEST C#中,它不会返回任何结果。我可以知道我的语法有什么问题吗

        var response = _elasticClient.Search<Person> (s => s
            .Index("person")
            .Query(q => q
                .Match(m => m
                    .Field(f => f.NameDetails.Name.First().NameValue.FirstName)
                    .Query("Fawsu")
                )
            )
        );
var response=\u elasticClient.Search(s=>s
.索引(“人”)
.Query(q=>q
.Match(m=>m
.Field(f=>f.NameDetails.Name.First().NameValue.FirstName)
.Query(“Fawsu”)
)
)
);

var response=\u elasticClient.Search(s=>s
.索引(“人”)
.Query(q=>q
.Match(m=>m
.Field(f=>f.NameDetails.Name[0].NameValue.FirstName)
.Query(“Fawsu”)
)
)
);
如何看待NEST生成的查询来解决此问题


与预期字符串相比,
.Field(f=>f.NameDetails.Name[0].NameValue.FirstName)
中的表达式在对象图中看起来有一个额外的级别,
Name
。我希望表达式的输出是

nameDetails.name.nameValue.firstName
这将与查询中的字段
“nameDetails.nameValue.firstName”
不匹配


我在索引和搜索时使用同一个类。不确定在索引过程中为什么缺少
Name
,问题已解决。实际上,我使用另一个类作为索引,另一个类用于搜索。谢谢你,罗斯。
nameDetails.name.nameValue.firstName