gpt4 book ai didi

c# - Elasticsearch Nest客户端未应用提升

转载 作者:行者123 更新时间:2023-12-02 23:12:32 25 4
gpt4 key购买 nike

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

该查询是使用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可以看出,这似乎是正确的,为什么它不起作用?

最佳答案

确实看起来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测试。

希望能有所帮助。

关于c# - Elasticsearch Nest客户端未应用提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58801023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com