C# 弹性搜索嵌套客户端未应用boost
我正在调查一个搜索结果与预期不符的bug,并发现这是因为没有应用boost 查询是使用NEST(6.6.0)生成的,使用以下代码:C# 弹性搜索嵌套客户端未应用boost,c#,
elasticsearch,nest,C#,
elasticsearch,Nest,我正在调查一个搜索结果与预期不符的bug,并发现这是因为没有应用boost 查询是使用NEST(6.6.0)生成的,使用以下代码: queryContainer = new MultiMatchQuery { Fuzziness = Fuzziness.Auto, Query = querystring, Type = TextQueryType.BestFields, Fields = Infer.Fields<RecipeSearchModel>(
queryContainer = new MultiMatchQuery
{
Fuzziness = Fuzziness.Auto,
Query = querystring,
Type = TextQueryType.BestFields,
Fields = Infer.Fields<RecipeSearchModel>(
f1 => Infer.Field<RecipeSearchModel>(f => f.Title, 5),
f2 => f2.Description,
f3 => Infer.Field<RecipeSearchModel>(f => f.Ingredients, 3),
f4 => f4.Method,
f5 => Infer.Field<RecipeSearchModel>(f => f.Image.Alt, 4))
};
这似乎是正确的,我可以从中看出,为什么这不起作用?确实看起来boost在某个地方被忽略了,这是github问题的链接。 现在,您可以尝试另一种语法:
queryContainer = new MultiMatchQuery
{
Fuzziness = Fuzziness.Auto,
Query = "query",
Type = TextQueryType.BestFields,
Fields = Infer.Fields<RecipeSearchModel>()
.And(Infer.Field<RecipeSearchModel>(f => f.Title, 5))
.And<RecipeSearchModel>(f => f.Description)
.And(Infer.Field<RecipeSearchModel>(f => f.Ingredients, 3))
.And<RecipeSearchModel>(f => f.Method)
.And(Infer.Field<RecipeSearchModel>(f => f.Image.Alt, 4))
};
使用NEST 6.6.0进行测试
希望能有所帮助。非常感谢。你有关于github问题的链接吗?当然,给我5分钟的时间来完成它啊,对不起。只是注意到你几分钟前才回答!
queryContainer = new MultiMatchQuery
{
Fuzziness = Fuzziness.Auto,
Query = "query",
Type = TextQueryType.BestFields,
Fields = Infer.Fields<RecipeSearchModel>()
.And(Infer.Field<RecipeSearchModel>(f => f.Title, 5))
.And<RecipeSearchModel>(f => f.Description)
.And(Infer.Field<RecipeSearchModel>(f => f.Ingredients, 3))
.And<RecipeSearchModel>(f => f.Method)
.And(Infer.Field<RecipeSearchModel>(f => f.Image.Alt, 4))
};
{
"query": {
"multi_match": {
"fields": [
"title^5",
"description",
"ingredients^3",
"method",
"image.alt^4"
],
"fuzziness": "AUTO",
"query": "query",
"type": "best_fields"
}
}
}