1

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

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”字段......所有这些都设置为null。这可能与我的文档没有根据它们来自的索引进行提升有关吗?

4

1 回答 1

1

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

这有帮助吗?

于 2015-10-26T18:06:05.750 回答