我正在使用一个文档查找器,它输入 N 个单词,并且应该搜索所有这些 N 个单词命中同一列。这 N 个单词是有序的,如果第一个和第二个单词匹配不同的文档,则与第一个单词匹配的文档需要更高的分数。到目前为止,我有这个:
{
"from": 0,
"query": {
"custom_filters_score": {
"filters": [
{
"boost": 10,
"filter": {
"term": {
"descripcion": "lost"
}
}
},
{
"boost": 9,
"filter": {
"term": {
"format": "in"
}
}
}
],
"query":{...(mandatory conditions regardless of the search pattenrs)...}}
}
}
}
从某种意义上说,这很有效,如果它匹配第一个单词,它将比第二个单词提升得更高。但是,问题是我需要如果它同时匹配第一个和第二个单词,则总得分是两个过滤器的总和,而不仅仅是最高的。在上面的示例中,包含描述的文档:“lost in space”的得分应该高于包含“lost”的文档。
我是否需要将脚本中两个过滤器的分数相加?如果是这样,怎么做?
谢谢!