需求：
目前160条结果（rerank_window: 160）会进入重排，重排中 文本和图片向量的相关性，都会作为融合公式的因子之一（粗排和reranker都有）：
knn_score
text_knn
image_knn
text_factor
knn_factor
但是文本向量召回和图片向量召回，是使用 KNN 索引召回的方式，并不是所有结果都有这两个得分，这两项得分都有为0的。
为了解决这个问题，有一个方法是对最终能进入重排的 160 条，看其中还有哪些分别缺失文本和图片向量召回的得分，再通过某种方式让 ES 去算，或者从 ES 把向量拉回来，自己算，或者在召回的时候请求 ES 的时候，就通过某种设定，确保前面的若干条都带有这两个分数，不知道有哪些方法，我感觉这些方法都不太好，请你思考一下

考虑的一个方案：
想在“第一次 ES 搜索”里，只对 topN 补向量精算，考虑 rescore 或 retriever.rescorer的方案(官方明确支持多段 rescore/支持 score_mode: multiply，甚至示例里就有 function_score/script_score 放进 rescore 的写法。)
这意味着你完全可以：
初检仍然用现在的 lexical + text knn + image knn 召回候选
对 window_size=160 做 rescore
用 exact script_score 给 top160 补 text/image vector 分
顺手把你现在本地 coarse 融合迁回 ES

export ES_AUTH="saas:4hOaLaf41y2VuI8y"
export ES="http://127.0.0.1:9200"
"index":"search_products_tenant_163"

有个细节暴露出来了：dotProduct() 这类向量函数在 script_score 评分上下文能用，但在 script_fields 取字段上下文里不认。所以如果我们要把 exact 分顺手回传给 rerank，用 script_fields 的话得自己写数组循环，不能直接调向量内建函数。

重排打分公式需要的base_query base_query_trans_zh knn_query image_knn_query还能不能拿到？请你考虑，尽量想想如何得到这些打分，如果实在拿不到去想替代的办法比如简化打分公式。
