ES定制化排序的骚操作
一.通过邻尽查询提升相关度
1.配合使用match_query和match_phrease
2.match_phrease匹配条件比match_query复杂
二.直接通过排序存在哪些问题
1.将权重转化为排序的先后顺序不一定合理
2.实际场景中最终的排序结果可能是多个字段的叠架的
3.排序的权重和影响因子可能是变动的,权重的量级也可能不同
三.自定义评分公式
四.使用script_score来实出定制化排序
1.从ES7.0版本开始支持
2.允许用户要检中灵活修改文档score
3.性能要高于function_score
以下是注意事项
五.提升缀匹配排序
PUT test_index
{
"mappings": {
"properties": {
"name":{
"type": "text",
"fields": {
"keywords":{
"type":"keyword",
"norms":false,
"similarity":"boolean",
"doc_values":true
}
}
}
}
}
}
六.指定满足条件的文档提权
1.比如将包含Plus的文档权重提升2倍
2.通过query解析结合用户画像将相关类目提权