elasticsearch 弹性搜索';当邮递员提交相同的查询成功时,s NEST API不返回查询结果,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 弹性搜索';当邮递员提交相同的查询成功时,s NEST API不返回查询结果,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 弹性搜索';当邮递员提交相同的查询成功时,s NEST API不返回查询结果

elasticsearch 弹性搜索';当邮递员提交相同的查询成功时,s NEST API不返回查询结果,elasticsearch,nest,elasticsearch,Nest,以下代码段更像是使用NEST API构建的此查询: private class Temp { public string Content { get; set; } public string TextToSearch { get; set; } } var temp = new Temp { TextToSearch = "empire", }; var response = await model.ElasticClient.SearchAsync<Tem

以下代码段更像是使用NEST API构建的此查询:

private class Temp
{
     public string Content { get; set; }
     public string TextToSearch { get; set; }
}

var temp = new Temp
{
   TextToSearch = "empire",
};

var response = await model.ElasticClient.SearchAsync<Temp>(s => s
                .Query(q => q
                    .MoreLikeThis(qd => qd
                        .Like(l => l.Text(temp.TextToSearch))
                        .MinTermFrequency(1)
                        .MinDocumentFrequency(1)
                        .Fields(fd => fd.Fields(r => r.Content)))));
当启用审计跟踪时,此有效负载由上面的C#代码片段生成。虽然在这两种情况下都正确地传递了凭据,但为什么NEST API版本6.5.0不从弹性搜索实例接收文档


库中是否存在错误或我们遗漏了一点?

除了C#示例中的
TextToSearch
“帝国”
和JSON查询DSL示例中的
“高级技术”
之外,我强烈怀疑这里的问题是嵌套案例中的索引和类型

API调用中未提供索引和类型时:

对于索引

  • 将查看是否有默认索引用于
    Temp
    类型,该类型在
    ConnectionSettings
    上配置了
    DefaultMappingFor
  • 如果
    Temp
    没有默认索引,将使用
    ConnectionSettings
    上配置的
    DefaultIndex
  • 如果未在
    ConnectionSettings
    上配置默认索引,则不会进行API调用,并且NEST将抛出异常以指示其没有足够的信息进行API调用
  • 对于类型

  • 将查看是否有默认类型名称可用于
    Temp
    类型,该类型配置为
    ConnectionSettings
    上的
    DefaultMappingFor
  • 将查看是否使用
    ConnectionSettings
    上的
    DefaultTypeNameInferrer
    配置了类型名约定。如果未配置任何对象,或者配置该对象的委托为给定类型返回
    null
    “”
    ,则将继续
  • 将查看是否使用
    ConnectionSettings
    上的
    DefaultTypeName
    指定了默认类型名。如果未指定,则将通过将类型名称小写来推断POCO类型的类型名称。对于
    Temp
    ,这将是
    Temp
  • 因此,假设您配置了默认索引,并且没有类型名称的约定,那么嵌套示例的请求URI将是

    <configured uri>/<default index>/temp/_search
    
    //temp/\u搜索
    
    这可能与你在《邮递员》中使用的不匹配


    查看文档以了解和的更多详细信息。

    是的,C#示例也应该是“高级技术”。那是个打字错误。谢谢你的回答,我会在检查你的步骤后给你回复。问题是类型名称不是小写的。谢谢@russ
    <configured uri>/<default index>/temp/_search