Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 弹性搜索嵌套客户端未应用boost_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# 弹性搜索嵌套客户端未应用boost

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>(

我正在调查一个搜索结果与预期不符的bug,并发现这是因为没有应用boost

查询是使用NEST(6.6.0)生成的,使用以下代码:

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"
    }
  }
}