提升个人 elasticsearch 索引以在结果中有偏好

Boosting individual elasticsearch indices to have preference in results

我正在尝试 boost 我的弹性搜索查询中的某些索引。现在,我的查询看起来像这样。

var query = {
    "query": {
        "query_string": {
            "fields": ["FirstName", "LastName"],
            "query": "Hank Hill",
            "default_operator": "AND"
        }
    }
};

var boosted_indices = {
    "index_A" : 1.0,
    "index_B" : 1.0,
    "index_C" : 10.0
};

if (boosted_indices) {
    query["indices_boost"] = boosted_indices;
}

// stringify and send query in an http.get request

我知道我的查询在没有提升任何索引的情况下按预期工作。但是,我的查询结果中仍然有很多来自 "index_A" 的结果,而不是大幅提升的 index_C。我知道 A 和 C 中应该有相似数量的匹配结果,所以问题一定是我没有正确提升查询。

我的查询 JSON 设置有误吗?在我链接的教程中,它没有提供太多上下文。

我注意到的另一件事.. 返回文档的“_score”字段...所有这些都设置为空。这可能与我的文档没有根据它们来自的索引进行提升有关吗?

希望您没有在查询中使用 sort 参数。这可能是 _score 为 null 而您没有得到预期结果的原因。

这有帮助吗?