首页下载资源后端一个人的es学习总结笔记

ZIP一个人的es学习总结笔记

sommous15.12KB需要积分:1

资源文件列表:

com3.zip 大约有5个文件
  1. com3/
  2. com3/es4 1013B
  3. com3/es2.text 950B
  4. com3/es3.text 1.69KB
  5. com3/es.txt 7.6KB

资源介绍:

一个人的es学习总结笔记
es对照mysql https://www.jianshu.com/p/c8df703f3566 1 select 字段 当你只需要查询某些字段时(不写则默认全部字段) GET index_name/_search { "_source": ["name","mobile] } 不想要某些字段时 GET index_name/_search { "_source": { excludes: ["age","email] } } match是分词查询,es会将数据分词(关键词)保存 比如 zhang san 会分为zhang 和 san 两个分词,满足其中一个就能查出来 2.模糊匹配(此功能对text类型才有效,当查询的是非字符串时,为精确匹配) 如果name字段的数据类型是text类型,搜索关键词会进行分词处理 GET index_name/_search { "query": { "_source": ["name","age"] //只查询这些索引中的这些字段 "match": { "name": "小明" //小明 就是分词 } } } 3.精确匹配 等值查询 BoolQueryBuild queryBuild = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("name","小李")) term是完整查询,es会将数据分词(关键词)保存 比如 zhang san 会分为zhang 和 san 两个分词,但是term中,分词必须完全匹配value值才能查询出来 GET index_name/_search { "query": { "term": { “name": "小明" } } } 4.多值精准匹配 类似于sql中的in功能 GET index_name/_search { "query": { "terms": { name: ["小明",“小红”] } } } 5.范围查询 gt 大于 gte 大于等于 lt 小于 lte 小于等于 GET index_name/_search { "query": { "range": { "age": { "gte": 23, "lte": 30 } } } } 前缀查询 GET index_name/_search{ "query": { "prefix": { "name": "C" } } } 找到name字段中所有以C开头的文档 通配符查询 GET index_name/_search{ "query": { "wildcard": { "name": "*ly*" } } } 正则 regexp 查询 GET index_name/_search{ "query": { "regexp": { "字段名": "正则表达式" } } } 模糊匹配(Match Query):使用模糊匹配进行搜索。例如,使用"elasticsearch"可以匹配到"elasticsearch" { "query": { "match": { "field_name": { "query": "elasticsearch", "fuzziness": "AUTO" } } } } Nested Query(嵌套查询) POST /products/_search { "query": { "nested": { "path": "reviews", "query": { "match": { "reviews.comment": "good" } } } } } 使用nested查询进行嵌套查询。 在reviews嵌套字段中根据reviews.comment字段的值查询"good"的文档。 Aggregation Query(聚合查询) bool组合查询 在es中bool就是用来组合布尔查询条件,布尔查询条件就是类似sql中的and,or GET index_name/_search { "query": { "bool": { "must": [], //must条件,类似sql中的and "must_not": [], //must_not条件,跟must相反 "should": [] //should条件,类似sql中or } } } where and功能 GET index_name/_search { "query": { "bool": { "must": [ { "match": { "name": "小明" } }, { "match": { "age": 18 } } ] } } } where or功能 GET index_name/_search { "query": { "bool": { //满足任意一个即可 "minimum_should_match "should": [ {"match": { "name": "小明" } }, { "match": { "age": 18 } } ] } } } group by功能 GET index_name/_search { "query": { //查询所有数据 "match_all": {} }, "aggs": { //按名称分组 “nameAggs": { "terms": { "field": "name" } } } } order by功能 GET index_name/_search { "query": { "match_all": {} }, "sort": [ { "name": { "order": "desc" } }, { "age": { "order": "desc" } } ] } 分页查询 GET index_name/_search { "query": { //查询所有数据 使用match_all,匹配所有文档,默认只会返回10条数据 "match_all": {} }, "from": 1, "size": 10 } count 功能 GET index_name/_count must和should共存情况 分组查询 "size": 0 展示的索引数据0条,便于查看分组信息,不然太杂乱 "field": "age" 表示对age进行分组 GET index_name/_search { "query": { //查询所有数据 "match_all": {} }, "aggs": { "分组名称-agegroups": { "terms": { //terms则是用来分组的关键字 "field": "age" } } }, "size": 0 } 分组后聚合(求和) //先按年龄分组,再计算年龄之和;再agegroups分组中,再次对age进行求和 GET index_name/_search { "query": { //查询所有数据 "match_all": {} }, "aggs": { "agegroups": { "terms": { "field": "age" } }, "aggs": { "agesum": { "sum": { "field": "age" } } } }, "size": 0 } 分组查询年龄平均值 GET index_name/_search { "query": { //查询所有数据 "match_all": {} }, "aggs": { "ageavg": { "avg": { "field": "age" } } } } https://blog.csdn.net/lkx021699/article/details/141262267?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-141262267-blog-131939978.235^v43^pc_blog_bottom_relevance_base3&spm=1001.2101.3001.4242.1&utm_relevant_index=3 分组查询年龄前三名 GET index_name/_search { "aggs": { "top3": { "top_hits": { "size": 3, "sort": { "order": "desc" } } } } } } POST index_name/_search { "size": 0, "aggregations": { "avg_price": { "avg": { "field": "price" } }, "max_price": { "max": { "field": "price" } }, "category_count": { "terms": { "field": "category" } } } } 使用aggregations进行聚合查询。 avg聚合计算了price字段的平均值。 max聚合计算了price字段的最大值。 terms聚合按category字段进行分组统计。 返回计算和统计结果,包括平均价格、最高价格和每个分类的文档数量 https://www.cnblogs.com/RunningSnails/p/17972959 es中的聚合,包含多种类型,最常用的两种,一个叫桶,一个叫度量 按照某种方式对数据进行分组,每一组数据在es中称为一个桶。如按照年龄段对人进行划分,0~10,10~20,20~30等 bucket aggregations 只负责对数据进行分组,不会进行计算。若要获得统计的数据,bucket中需要嵌套另一种聚合,metrics aggregations 即度量。
100+评论
captcha