ElasticSearch备考 -- 多字段查询

一、题目

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

二、思考

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

其中

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

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

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

三、解题

Step 1、初始化数据

bash 复制代码
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,

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

四、总结

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

参考资料

送一波福利:

福利一

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

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

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

福利二

福利三

相关推荐
青山是哪个青山3 小时前
LangChain 学习笔记(四):Message 与提示词模板
笔记·学习·langchain
guwentian3 小时前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
hsjiasb4 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
崇子嵘4 小时前
基于zynqMP15eg的linux驱动学习
学习
知识分享小能手6 小时前
线性代数学习教程,从入门到精通,向量组的线性相关性 — 完整知识点梳理(7)
学习·线性代数·机器学习
Shell运维手记6 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
动词ing7 小时前
【学习笔记】C语言(数组指针与指针数组+字符数组+函数+参数传递+字符串作为形参+递归函数+指针函数+回调函数+结构体嵌套+内存动态分配函数)
c语言·笔记·学习
Elastic 中国社区官方博客8 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
阿里云大数据AI技术8 小时前
AI Search+ES 9.4.X最佳实践:“更快、更准、更安全的企业级搜索引擎”"为AI Agent提供坚实底座”
人工智能·elasticsearch·agent
AI领路人.9 小时前
OceanBase混合检索(Hybrid Search):多模态检索实战指南
全文检索·向量检索·语义理解·混合检索·稀疏检索·加权融合