我在弹性搜索查询中尝试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”字段......所有这些字段都设置为null。这可能与我的文件没有根据它们来自的索引提升有关吗?
答案 0 :(得分:1)
我希望你没有在查询中使用sort
参数。这可能是_score
为空且您未获得预期结果的原因。
这有帮助吗?