es我的笔记

1修改文档时候的并发问题

es7x后的版本中,_seq_no代表在特定分片中的序列号,_primary_term代表文档所在主分片的任期编号,修改文档的时候拿这两个作为条件就ok了。每修改一次,_seq_no就会+1。

2es中如何处理关联关系

1嵌套对象

允许对象数组中的对象被独立索引

构建映射时候:properties同级加上:"type":"nested"

查询的时候也要加上"nested"

缺点:每次更新会导致重新索引整个对象(包括根对象和嵌套对象)

注意:嵌套的时候不设置nested,es会对嵌套的数据进行扁平化处理。

2join父子文档类型
3宽表冗余存储
4业务端关联

3查询

跟query同级:

_source:查询哪些字段

sort:排序规则

from:起始页

size:条数


query子级:精确匹配(不分词)

term:精确匹配。不分词,会算分。term处理多值字段(数组),是包含,不是精确匹配。避免算分:外层加上constant_score和filter。

terms:多值匹配。terms只是匹配上自己中的一个值即可,但是如果必须全部匹配就需要使用bool must+多个term进行实现。

range:范围查询

exists:字段是否存在

ids:根据一组id查询

prefix:前缀匹配。不分词(不会对搜索的词分词),不会算分。场景:自动补全功能。最好搭配keyword类型。

wildcard:通配符

regexp:正则匹配

fuzzy:编辑距离的模糊查询。fuzziness:允许错误的字的数量,默认是0,1,2

term set:能在多值字段中匹配个数

4es中的bool

  • 如果整个查询没有 must /filter: should 默认要求至少匹配 1 条(minimum_should_match=1),必须命中其中一个;
  • 如果外层 bool 存在 must /filter: should 变成「加分项,不强制匹配」,文档可以一条都不满足 should,照样能查出来。
相关推荐
青山是哪个青山8 小时前
LangChain 学习笔记(四):Message 与提示词模板
笔记·学习·langchain
guwentian8 小时前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
Shell运维手记11 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
2503_9317124811 小时前
OpenInsight领衔:企业AI数据分析平台(Data Agent/智能问数/智能数据报告)
大数据
朴马丁11 小时前
国际与国产PLM在精细化工赛道的布局:2026年主要厂商技术特色
大数据·运维·人工智能·流程行业plm·化工新材料
FakeOccupational12 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存(D-Cache)结构+MPU+DMA&Cache+STM32CubeMX配置
笔记·stm32·缓存
动词ing12 小时前
【学习笔记】C语言(数组指针与指针数组+字符数组+函数+参数传递+字符串作为形参+递归函数+指针函数+回调函数+结构体嵌套+内存动态分配函数)
c语言·笔记·学习
~央千澈~12 小时前
从“拟声”到“生成”:AI音效背后的技术原理·优雅草AI音乐·AI音乐技术研究
大数据·人工智能·ai·音频
Elastic 中国社区官方博客13 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
阿里云大数据AI技术13 小时前
AI Search+ES 9.4.X最佳实践:“更快、更准、更安全的企业级搜索引擎”"为AI Agent提供坚实底座”
人工智能·elasticsearch·agent