当前位置: 首页 > article >正文

ElasticSearch备考 -- Multi match

一、题目

索引task有3个字段a、b、c,写一个查询去匹配这三个字段为mom,其中b的字段评分比a、c字段大一倍,将他们的分数相加作为最后的总分数

二、思考

通过题目要求对多个字段进行匹配查询,可以考虑multi match、bool query操作。其中multi match可以通过参数控制分数。查看官网API 包括五中参数。

其中

  • best_fields:默认,多个字段中,返回评分最高的。

  • most_fields:匹配多个字段,返回的综合评分(非最高分)

  • cross_fields:待查询内容在多个字段中都显示,注意只能用在同种分析器类型字段

三、解题

Step 1、初始化数据

POST task/_bulk
{"create":{"_id":1}}
{"a":"key","b":"mom","c":"mom"}
{"create":{"_id":2}}
{"a":"key","b":"cake mix","c":"mom"}
{"create":{"_id":3}}
{"a":"key","b":"mom","c":"cake mix"}
{"create":{"_id":4}}
{"a":"cake mix","b":"mom","c":"mom"}

Step 2、查询多个字段

multi filed查询参数

  • type:为multi field对匹配评分五种参数

  • fileds:可以使用插入符号(^)增强单个字段

  • tie_breaker:范围为0 ~ 1,如果有值则计算评分为 tie_breaker * _score

  • operator:操作符包括and、or,

POST task/_search
{
  "query": {
    "multi_match": {
      "query": "mom",
      "fields": ["a","b^2","c"],
      "type": "most_fields"
    }
  }
}

四、总结

  • 重点弄清type每种评分类型对应含义
  • fileds中若想增强评分使用符合为^


参考资料

  • Multi-match query | Elasticsearch Guide [8.1] | Elastic

送一波福利:

福利一

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

福利二

福利三


http://www.kler.cn/news/334955.html

相关文章:

  • 代码随想录算法训练营第35天|1049.最后一块石头的重量II、494.目标和、474.一和零
  • 词嵌入(Word Embedding)之Word2Vec、GloVe、FastText
  • Hive数仓操作(十七)
  • 趣味SQL | 从围棋收官到秦楚大战的数据库SQL实现(下)
  • Linux高级编程_29_信号
  • 【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
  • EXCEL_光标百分比
  • 计算机网络:物理层 —— 物理层下的传输媒体
  • 深入理解闭包【JavaScript】
  • 【百度文心智能体】想开发爆款智能体?来看看 万圣节之夜探秘者 智能体开发流程大揭秘
  • 东方仙盟——软件终端架构思维———未来之窗行业应用跨平台架构
  • IDEA使用技巧
  • 信息学奥赛复赛复习13-CSP-J2021-02插入排序-排序稳定性、插入排序、sort排序、结构体、计数排序
  • 大数据复习知识点6
  • Vueron引领未来出行:2026年ADAS激光雷达解决方案上市路线图深度剖析
  • windows下DockerDesktop命令行方式指定目录安装
  • OJ题目!!!(https://oj.aicoders.cn/group/3481/training/33087/problem/1138)
  • Ubuntu如何如何安装tcpdump
  • 两个wordpress网站共用一个数据库的数据表
  • Python编写的贪吃蛇小游戏