您好我需要根据字段的特定值来提升文档。我的文档包含一个名为Region的字段。基于该区域中存在的值,我需要提升我的文档.. 这些是我的文件
{
"title":"INOX: Malleshwaram - Mantri Square",
"region":"Bangalore"
}
{
"title":"INOX: Bund Garden Road",
"region":"Pune"
}
{
"title":"INOX: Glomax Mall, Kharghar",
"region":"Mumbai"
}
我尝试在查询中使用rescore查询,看起来像这样
"rescore" : {
"query" : {
"score_mode":"total",
"query_weight" : 2.5,
"rescore_query_weight" : 0.5,
"rescore_query" : {
"match" : {
"region" : {
"query" : "mumbai",
"slop" : 2
}
}
}
}
}
}
但它根本不能正常工作..有什么方法可以解决这个问题吗? 提前谢谢!
答案 0 :(得分:1)
为什么重新加载,您只需要提升。根据您使用的查询类型,可以在
中进行提升"query_string": {
"fields":["region^56"],
"use_dis_max" : true,
"query": "mumbai"
}
其中^ 56是提升值。
您也可以使用http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html
中提到的内容如果您正在使用bool查询,则可以使用此类提升来增强所有查询
{
"bool" : {
"must" : {
"term" : { "region" : "mumbai" }
},
"boost" : 25.0
}
}