如何设置字段不参与打分

匿名 | 发布于2019年01月25日 | 阅读数:209

全文检索,queryString如何设置其中一个或几个字段不参与打分
已邀请:

ccsy

赞同来自:

把它放进fifter里

lzc

赞同来自:

God_lockin

赞同来自:

重新组合你的query,拿正则之类的方式把不想要打分的字段拆出来重组
 
需要打分的字段放query里,不需要的放filter里

lzc

赞同来自:

@God_lockin:
搜索条件只有一个,就是"大林",想排除view_co这个字段对于打分的影响

God_lockin

赞同来自:


这里的a和b会进入打分,但是c只会做true/false的筛选,不计入打分
{
"query": {
"multi_match": {
"query": "facebook",
"fields": [
"a",
"b"
]
}
},
"filter": {
"multi_match": {
"query": "facebook",
"fields": [
"c"
]
}
}
}

God_lockin

赞同来自:

而且你也可以用bool#must/must_not/should嵌套的方式来动态组合你的复杂query条件

ccsy

赞同来自:

{
"multi_match": {
"query": "大林",
"fields": [ "mc", "view_co^0" ]
}
}
写类似这种,字段后面设置加权值

wangchonglie

赞同来自:

{
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "should": [],
          "must": [],
          "must_not": []
        }
      },
      "filter": {
        "should": [],
        "must": [],
        "must_not": []
      }
    }
  }
}
不参与评分的写到filter模块, 条件写在列表中就可以了。

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:blog.csdn.net/laoyang360

赞同来自:

使用filter,query和filter的不同和底层原理:https://blog.csdn.net/laoyang3 ... 68757

要回复问题请先登录注册