elasticsearch 弹性搜索';当邮递员提交相同的查询成功时,s NEST API不返回查询结果
以下代码段更像是使用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
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
<configured uri>/<default index>/temp/_search
//temp/\u搜索
这可能与你在《邮递员》中使用的不匹配
查看文档以了解和的更多详细信息。是的,C#示例也应该是“高级技术”。那是个打字错误。谢谢你的回答,我会在检查你的步骤后给你回复。问题是类型名称不是小写的。谢谢@russ
<configured uri>/<default index>/temp/_search