elasticsearch
https://zhuanlan.zhihu.com/p/524128889
- 索引 (indices ):类似于我们的关系型数据库
- 类型(type ):类似于数据库的表结构
- 文档(Document ):类似于数据库表中的行,也就是具体的数据
- 字段(Field ):雷雨时数据库表中的列
- es5 版本:允许一个索引库下中可以创建多个类型
- es6 版本:一个索引库下中只能创建一种类型
- es7 版本:一个索引库不支持显式创建类型,当创建索引的时候,默认会创建一个名称为
_doc
的类型
因为一个索引库下,如果多个类型,会存在搜索问题,比如,类型 A 下某个字段order_source
是一个long
型;类型 B 下,字段order_source
是一个text
型。
这两个字段名称都是一样,实际存入 Lucene 中,也是同一个字段,但是他们的字段类型是不一样的,要么是long
型,要么是text
型,只会是其中一个,这就造成一个问题,类型 A 中order_source
字段不可用,或者类型 B 中order_source
字段不可用。
- 多条件查询
{ "query":{ "bool":{ "must":[ { "match":{ "name":"张" } }, { "match":{ "sex:"男" } } ] } } }
{ "query":{ "bool":{ "should":[ { "match":{ "name":"张" } }, { "match":{ "sex:"男" } } ] } } }
{ "query":{ "bool":{ "filter":{ "range":{ "age":{ "gt" : 25, "lt" : 50 } } } } } }
- 聚合查询
{ "aggs":{ "age_group":{ "terms":{ "field":"age" } } }, "size" : 0 }
{ "aggs" : { //聚合操作 "age_avf" : { //名称,自定义 "avg" : { //分组 "field" : "age" //分组字段 } } }, "size" : 0 }
- 排序
{ "query" : { "match_all" : { } }, "sort" : { "_id":{ "order" : "asc" } } }
- 查询指定列
{
"query" : {
"match_all" : {
}
},
"_source" : ["name","sex"]
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署