弄清楚了!我错过了可以在布尔查询中嵌套多字段查询的事实!我的最终解决方案如下所示:
{ "query":{ "function_score":{ "query":{ "bool":{ "should": [ { "range": { "allBoost": {"gt": 0 } } },{ "multi_match":{ "query":"some search query", "fields":[ "id", "name", "description", "category" ] } } ] } }, "functions":[ { "filter":{ "range": { "allBoost": { "gt": 0 } } }, "script_score":{ "script":"doc['allBoost'].value" } }, { "filter":{ "range": { "allBoost": { "lte": 0 } } }, "script_score":{ "script":"_score" } } ], "boost_mode": "replace" } }}


