弹性搜索Nest客户端未应用增强功能

我正在调查一个搜索结果与预期不符的错误,发现这是因为没有应用增强功能。

查询是使用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))
};

但是生成的查询没有应用任何提升。

      "multi_match": {
        "fields": [
          "title","description","ingredients","method","image.alt"
        ],"fuzziness": "AUTO","query": "chocolate","type": "best_fields"
      }

根据我从documentation可以看出来的说法,这似乎是正确的,为什么它不起作用?

baizhongzheng 回答:弹性搜索Nest客户端未应用增强功能

实际上看起来boost在某个地方被忽略了,here是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))
};

会生成以下查询以查询Elasticsearch

{
  "query": {
    "multi_match": {
      "fields": [
        "title^5","description","ingredients^3","method","image.alt^4"
      ],"fuzziness": "AUTO","query": "query","type": "best_fields"
    }
  }
}

通过NEST 6.6.0测试。

希望有帮助。

本文链接:https://www.f2er.com/3124407.html

大家都在问