我有一个multi_match查询。有两个领域,我希望他们两个不同的slop。 现在,两者的坡度都是1,但对于生物,我想要slop为1而且对于位置,我想要slop为2.我怎么能这样做?
这就是我现在的查询:
{
"query":{
"multi_match":{
"query":"San Diego",
"type":"phrase",
"slop":1,
"fields":[
"bio","location"
]
}
},
"sort":[
{
"_score":"desc"
}
],
"size":50,
"from":0,
"fields":[
"id",
"bio",
"location",
]
答案 0 :(得分:0)
所有多匹配查询都会生成匹配查询,并将其包装在dismax query中。这很方便,但如果您需要以不同方式配置每个匹配查询,您可以自己创建这种查询:
"dis_max" : {
"queries" : [
{
"match" : {
"bio" : {
"query" : "San Diego",
"type" : "phrase",
"slop" : 1
}
}
},
{
"match" : {
"location" : {
"query" : "San Diego",
"type" : "phrase",
"slop" : 2
}
}
}
]
}