使用功能得分中的多匹配查询中匹配的字段

时间:2018-03-22 13:51:35

标签: elasticsearch nest

我有一个我在5个字段中使用的多匹配查询。我还使用功能分数将各种因素结合到分数中。我想为此添加一个因子,以便在其中一个字段上匹配的结果会增加(添加一个大数字,以便此字段上的匹配始终具有最高分数)。

我知道我可以使用突出显示找出哪些字段匹配,但如何在功能评分脚本中访问该信息?

这是我到目前为止所使用的(使用NEST,但这不应该有所作为)。

var searchResponse = client.Search<TopicCollection.Topic>(s => s
.Query(q => q
    .FunctionScore(fs => fs
        .Name("function_score_query")
        .Query(q1 => q1
            .MultiMatch(c => c
                .Fields(f => f
                    .Field(p => p.field1)
                    .Field(p => p.field2) //...etc
                .Query(searchTerm)
            )
        )
        .Functions(fun => fun
            .ScriptScore(ss => ss.Script(sc => sc
                .Inline(
                //TODO: add 1000 to normalised _score if match is in field1
            )))       
        ).BoostMode(FunctionBoostMode.Replace)
    )
).Highlight(h => h
    .Fields(p => p.AllField())
    )
);

0 个答案:

没有答案