范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

玩转elasticsearch的搜索

  es之批量导入数据BulkES提供了⼀个叫 bulk 的API 来进⾏批量操作批量导⼊
  数据{"index": {"_index": "book", "_type": "_doc", "_id": 1}} {"name": "权⼒的游戏"} {"index": {"_index": "book", "_type": "_doc", "_id": 2}} {"name": "疯狂的⽯头"}POST bulkcurl -X POST "localhost:9200/_bulk" -H "Content-Type: application/json" --data-binary @namees之term的多种查询
  介绍单词级别查询这些查询通常⽤于结构化的数据,⽐如:number, date, keyword等,⽽不是对text。也就是说,全⽂本查询之前要先对⽂本内容进⾏分词,⽽单词级别的查询直接在相应字段的反向索引中精确查找,单词级别的查询⼀般⽤于数值、⽇期等类型的字段上
  准备⼯作删除nba索引新增nba索引PUT nba {   "mappings": {     "properties": {       "birthDay": {         "type": "date"       },       "birthDayStr": {         "type": "keyword"       },       "age": {         "type": "integer"       },       "code": {         "type": "text"       },       "country": {         "type": "text"       },       "countryEn": {         "type": "text"       },       "displayAffiliation": {         "type": "text"       },       "displayName": {         "type": "text"       },       "displayNameEn": {         "type": "text"       },       "draft": {         "type": "long"       },       "heightValue": {         "type": "float"       },       "jerseyNo": {         "type": "text"       },       "playYear": {         "type": "long"       },       "playerId": {         "type": "keyword"       },       "position": {         "type": "text"       },       "schoolType": {         "type": "text"       },       "teamCity": {         "type": "text"       },       "teamCityEn": {         "type": "text"       },       "teamConference": {         "type": "keyword"       },       "teamConferenceEn": {         "type": "keyword"       },       "teamName": {         "type": "keyword"       },       "teamNameEn": {         "type": "keyword"       },       "weight": {         "type": "text"       }     }   } }批量导⼊数据(player⽂件)
  链接:https://pan.baidu.com/s/13Uahu1FxKiY6nfRYeY4Myw
  提取码:t2qb
  Term query 精准匹配查询(查找号码为23的球员)POST nba/_search {   "query": {     "term": {       "jerseyNo": "23"     }   } }
  Exsit Query 在特定的字段中查找非空值的⽂档(查找队名非空的球员)POST nba/_search {   "query": {     "exists": {       "field": "teamNameEn"     }   } }
  Prefix Query 查找包含带有指定前缀term的⽂档(查找队名以Rock开头的球员)POST nba/_search {   "query": {     "prefix": {       "teamNameEn": "Rock"     }   } }
  Wildcard Query 支持通配符查询,*表示任意字符,?表示任意单个字符(查找火箭队的球员)POST nba/_search {   "query": {     "wildcard": {       "teamNameEn": "Ro*s"     }   } }
  Regexp Query 正则表达式查询(查找火箭队的球员)POST nba/_search {   "query": {     "regexp": {       "teamNameEn": "Ro.*s"     }   } }
  Ids Query(查找id为1和2的球员)POST nba/_search {   "query": {     "ids": {       "values": [         1,         2       ]     }   } }玩转es的范围查询
  查找指定字段在指定范围内包含值(日期、数字或字符串)的文档。查找在nba打了2年到10年以内的球员POST nba/_search {   "query": {     "range": {       "playYear": {         "gte": 2,         "lte": 10       }     }   } }查找1980年到1999年出⽣的球员POST nba/_search {   "query": {     "range": {       "birthDay": {         "gte": "01/01/1999",         "lte": "2022",         "format": "dd/MM/yyyy||yyyy"       }     }   } }玩转es的布尔查询
  布尔查询
  type
  description
  must
  必须出现在匹配⽂档中
  filter
  必须出现在⽂档中,但是不打分
  must_not
  不能出现在⽂档中
  should
  应该出现在⽂档中
  must (查找名字叫做James的球员)POST /nba/_search {   "query": {     "bool": {       "must": [         {           "match": {             "displayNameEn": "james"           }         }       ]     }   } }
  效果同must,但是不打分(查找名字叫做James的球员)POST /nba/_search {   "query": {     "bool": {       "filter": [         {           "match": {             "displayNameEn": "james"           }         }       ]     }   } }
  must_not (查找名字叫做James的⻄部球员)POST /nba/_search {   "query": {     "bool": {       "must": [         {           "match": {             "displayNameEn": "james"           }         }       ],       "must_not": [         {           "term": {             "teamConferenceEn": {               "value": "Eastern"             }           }         }       ]     }   } }
  should(查找名字叫做James的打球时间应该在11到20年⻄部球员)即使匹配不到也返回,只是评分不同POST /nba/_search {   "query": {     "bool": {       "must": [         {           "match": {             "displayNameEn": "james"           }         }       ],       "must_not": [         {           "term": {             "teamConferenceEn": {               "value": "Eastern"             }           }         }       ],       "should": [         {           "range": {             "playYear": {               "gte": 11,               "lte": 20             }           }         }       ]     }   } }如果minimum_should_match=1,则变成要查出名字叫做James的打球时间在11到20年⻄部球员POST /nba/_search {   "query": {     "bool": {       "must": [         {           "match": {             "displayNameEn": "james"           }         }       ],       "must_not": [         {           "term": {             "teamConferenceEn": {               "value": "Eastern"             }           }         }       ],       "should": [         {           "range": {             "playYear": {               "gte": 11,               "lte": 20             }           }         }       ],       "minimum_should_match": 1     }   } }玩转es的排序查询⽕箭队中按打球时间从⼤到⼩排序的球员POST nba/_search {   "query": {     "match": {       "teamNameEn": "Rockets"     }   },   "sort": [     {       "playYear": {         "order": "desc"       }     }   ] }⽕箭队中按打球时间从⼤到⼩,如果年龄相同则按照身⾼从⾼到低排序的球员POST nba/_search {   "query": {     "match": {       "teamNameEn": "Rockets"     }   },   "sort": [     {       "playYear": {         "order": "desc"       }     },     {       "heightValue": {         "order": "asc"       }     }   ] }玩转es聚合查询之指标聚合
  ES聚合分析是什么聚合分析是数据库中重要的功能特性,完成对⼀个查询的数据集中数据的聚合计算,如:找出某字段(或计算表达式的结果)的最⼤值、最⼩值,计算和、平均值等。ES作为搜索引擎兼数据库,同样提供了强⼤的聚合分析能⼒。对⼀个数据集求最⼤、最⼩、和、平均值等指标的聚合,在ES中称为指标聚合⽽关系型数据库中除了有聚合函数外,还可以对查询出的数据进⾏分组group by,再在组上进⾏指标聚合。在ES中称为桶聚合
  max min sum avg求出⽕箭队球员的平均年龄POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "avgAge": {       "avg": {         "field": "age"       }     }   },   "size": 0 }
  value_count 统计非空字段的文档数求出⽕箭队中球员打球时间不为空的数量POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "countPlayerYear": {       "value_count": {         "field": "playYear"       }     }   },   "size": 0 }查出⽕箭队有多少名球员POST nba/_count {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   } }
  Cardinality 值去重计数查出⽕箭队中年龄不同的数量POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "counAget": {       "cardinality": {         "field": "age"       }     }   },   "size": 0 }
  stats 统计count max min avg sum 5个值查出⽕箭队球员的年龄statsPOST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "statsAge": {       "stats": {         "field": "age"       }     }   },   "size": 0 }
  Extended stats ⽐stats多4个统计结果: 平方和、方差、标准差、平均值加/减两个标准差的区间查出⽕箭队球员的年龄Extend statsPOST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "extendStatsAge": {       "extended_stats": {         "field": "age"       }     }   },   "size": 0 }
  Percentiles 占⽐百分位对应的值统计,默认返回[ 1, 5, 25, 50, 75, 95, 99 ]分位上的值查出⽕箭的球员的年龄占⽐POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "pecentAge": {       "percentiles": {         "field": "age"       }     }   },   "size": 0 }查出⽕箭的球员的年龄占⽐(指定分位值)POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "percentAge": {       "percentiles": {         "field": "age",         "percents": [           20,           50,           75         ]       }     }   },   "size": 0 }玩转es聚合查询之桶聚合
  ES聚合分析是什么聚合分析是数据库中重要的功能特性,完成对⼀个查询的数据集中数据的聚合计算,如:找出某字段(或计算表达式的结果)的最⼤值、最⼩值,计算和、平均值等。ES作为搜索引擎兼数据库,同样提供了强⼤的聚合分析能⼒。对⼀个数据集求最⼤、最⼩、和、平均值等指标的聚合,在ES中称为指标聚合⽽关系型数据库中除了有聚合函数外,还可以对查询出的数据进⾏分组group by,再在组上进⾏指标聚合。在ES中称为桶聚合
  Terms Aggregation 根据字段项分组聚合⽕箭队根据年龄进⾏分组POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "aggsAge": {       "terms": {         "field": "age",         "size": 10       }     }   },   "size": 0 }
  order 分组聚合排序⽕箭队根据年龄进⾏分组,分组信息通过年龄从⼤到⼩排序 (通过指定字段)POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "aggsAge": {       "terms": {         "field": "age",         "size": 10,         "order": {           "_key": "desc"         }       }     }   },   "size": 0 }⽕箭队根据年龄进⾏分组,分组信息通过⽂档数从⼤到⼩排序 (通过⽂档数)POST /nba/_search {   "query": {     "term": {       "teamNameEn": {         "value": "Rockets"       }     }   },   "aggs": {     "aggsAge": {       "terms": {         "field": "age",         "size": 10,         "order": {           "_count": "desc"         }       }     }   },   "size": 0 }每⽀球队按该队所有球员的平均年龄进⾏分组排序 (通过分组指标值)POST /nba/_search {   "aggs": {     "aggsTeamName": {       "terms": {         "field": "teamNameEn",         "size": 30,         "order": {           "avgAge": "desc"         }       },       "aggs": {         "avgAge": {           "avg": {             "field": "age"           }         }       }     }   },   "size": 0 }
  筛选分组聚合湖⼈和⽕箭队按球队平均年龄进⾏分组排序 (指定值列表)POST /nba/_search {   "aggs": {     "aggsTeamName": {       "terms": {         "field": "teamNameEn",         "include": [           "Lakers",           "Rockets",           "Warriors"         ],         "exclude": [           "Warriors"         ],         "size": 30,         "order": {           "avgAge": "desc"         }       },       "aggs": {         "avgAge": {           "avg": {             "field": "age"           }         }       }     }   },   "size": 0 }湖⼈和⽕箭队按球队平均年龄进⾏分组排序 (正则表达式匹配值)POST /nba/_search {   "aggs": {     "aggsTeamName": {       "terms": {         "field": "teamNameEn",         "include": "Lakers|Ro.*|Warriors.*",         "exclude": "Warriors",         "size": 30,         "order": {           "avgAge": "desc"         }       },       "aggs": {         "avgAge": {           "avg": {             "field": "age"           }         }       }     }   },   "size": 0 }
  Range Aggregation 范围分组聚合NBA球员年龄按20,20-35,35这样分组POST /nba/_search {   "aggs": {     "ageRange": {       "range": {         "field": "age",         "ranges": [           {             "to": 20           },           {             "from": 20,             "to": 35           },           {             "from": 35           }         ]       }     }   },   "size": 0 }NBA球员年龄按20,20-35,35这样分组 (起别名)POST /nba/_search {   "aggs": {     "ageRange": {       "range": {         "field": "age",         "ranges": [           {             "to": 20,             "key": "A"           },           {             "from": 20,             "to": 35,             "key": "B"           },           {             "from": 35,             "key": "C"           }         ]       }     }   },   "size": 0 }
  Date Range Aggregation 时间范围分组聚合NBA球员按出⽣年⽉分组POST /nba/_search {   "aggs": {     "birthDayRange": {       "date_range": {         "field": "birthDay",         "format": "MM-yyy",         "ranges": [           {             "to": "01-1989"           },           {             "from": "01-1989",             "to": "01-1999"           },           {             "from": "01-1999",             "to": "01-2009"           },           {             "from": "01-2009"           }         ]       }     }   },   "size": 0 }
  Date Histogram Aggregation 时间柱状图聚合按天、⽉、年等进⾏聚合统计。可按 year (1y), quarter (1q), month (1M), week (1w), day(1d), hour (1h), minute (1m), second (1s) 间隔聚合NBA球员按出⽣年分组POST /nba/_search {   "aggs": {     "birthday_aggs": {       "date_histogram": {         "field": "birthDay",         "format": "yyyy",         "interval": "year"       }     }   },   "size": 0 }es之query_string查询
  介绍query_string 查询,如果熟悉lucene的查询语法,我们可以直接⽤lucene查询语法写⼀个查询串进⾏查询,ES中接到请求后,通过查询解析器,解析查询串⽣成对应的查询。
  指定单个字段查询POST /nba/_search {   "query": {     "query_string": {       "default_field": "displayNameEn",       "query": "james OR curry"     }   },   "size": 100 }POST /nba/_search {   "query": {     "query_string": {       "default_field": "displayNameEn",       "query": "james AND harden"     }   },   "size": 100 }
  指定多个字段查询POST /nba/_search {   "query": {     "query_string": {       "fields": [         "displayNameEn",         "teamNameEn"       ],       "query": "James AND Rockets"     }   },   "size": 100 }
  参考个人博客:cyz

索斯盖特希望带领英格兰夺得世界杯索斯盖特的合同将持续到2024年,但人们仍在猜测他可能会在卡塔尔比赛后结束六年任期,特别是如果英格兰表现不佳。在接管后,英格兰陷入了失望和争议,罗伊霍奇森在2016年欧洲杯上耻辱地身高只有1。6米,比普通人还普通的博格斯,为何能在NBA效力14年?前言无论是在NBACBA,又或者各种地区社区联赛,甚至普通的野球场,要想成为球场上的核心,最需要的就是身体天赋,而篮球运动最为看重的便是身高。毕竟,能够控制制空权,便意味着能控制篮包容是一种大度,欣赏是一种修养包容是一种大度,欣赏是一种修养作者丨永恒摄影丨穆利斌金无足赤,人无完人。人生在世谁都会有或多或少的缺点,即使金子也没有十足之赤。人都是有优点和缺点的,世界上本来就没有十全十美的人,瞬间你我真的假的瞬间你我(外一首)戈涡从来没有长久永远没有永远上帝打了一个小盹你我已过百年我走不到你的身边你等不及我的伟岸婚纱还飘在晨光里晚霞已催促谢幕别用他的洗脚盆洗脑别被他的话术催眠哪有岁月静凡人随笔连载序在这个世界上,每个人用不同人生经历的一砖一瓦生活中的甜酸苦辣,营造出不同的内心世界。有的人心里亮堂,自身带着阳光有的人内心龌龊,陷入成败得失恩怨情仇的深渊纠缠不休不得解脱有人乐天一个人这么待你,其实是瞧不起你作者闻秋声原创文章,抄袭必究01引言时光匆匆,漫漫人生路上,我们会遇到许多人,与之产生不一样的故事。有的人,就像光一样,温暖相伴而有的人,虽然只在你的生命中短暂停留,却如刺一样,防戈壁翡翠神木园(上)新疆游(23)8月30日我们从阿克苏出发前往被誉为戈壁翡翠的圣地天山神木园。该园位于温宿县西北60千米处,海拔1700米,这一带多为荒凉的戈壁滩,惟独这里突兀出现一片郁郁葱葱生机盎然的绿洲,且园关注这件事,东部战区空军某基地干得棒文图金伟兵林群国王昊靳子健湘洋村位于福建省龙岩市的武平长汀上杭三县结合部,地处闽粤赣革命根据地,是开国上将空军首任司令员刘亚楼的故乡。传承红色基因,推进革命老区振兴发展是空军官兵义教你考高分的学习博主,其实是中专学历,粉丝们坐不住了谁都有一个好好学习的梦想,现在学习似乎也成为了一个很大的卖点,在互联网上就有不少博主和网红打着教你学习拿高分的旗号,收割了一大波粉丝。然而,想靠学习走红的人要么是本身学历很高,有两人的一生,同时要走两条路(原创)爱人说,她一个曾经好得无话不说的朋友,或许这个冬天,将要孤苦地走完她一生的路。我的心一惊一颤。我知道那个人,她还很年轻,年轻得远没有到该告别人生的演出。犹如一片叶子,刚由深绿转为浅卡塔尔世界杯开赛在即中联重科助建卢塞尔体育场侧记我算不上足球的热衷粉,中联重科建筑起重机械分公司中东非洲区经理任杰笑了笑,但这届卡塔尔世界杯,却让我感到亲切和自豪。11月21日,2022年卡塔尔世界杯将打响揭幕战,开启四年一度的
用半年时间,骑行山东各县,一,日照市东港区日照在山东的具体位置!出发点选在了日照城西的竹洞天。东港区ZF大楼,这原先是日照的C位,旁边是百货大楼。如今,这里叫老城区。据说,东港区政府也有搬迁计划。整个日照只有一个区,就叫东西安人排队道歉,只因一碗面让城市蒙羞西安是一座历史古城,人才辈出,文化底蕴深厚,有很多属于这个城市的明星美食。腊汁肉夹馍羊肉泡馍秦镇凉皮油泼辣子裤带面陕西凉皮从这些传统美食中,可以看出,身处关中平原中部的西安,饮食结四川率先打响人口保卫战,取消婚姻限制将有力提高人口增长率把地球的故事讲给宇宙中国人口增长率明显降低,已经负增长,为扭转人口增长滑坡,国家不断出台多项鼓励生育政策,但收效甚微,不见起色。根据国家统计局发布了的人口相关数据报告显示,截止20四川新闻联播丨春耕备耕忙人勤地生金视频加载中2月4日立春在即,蜀乡沃野逐步进入大春生产时间,我省各地抢抓农时,做好春耕备耕工作,乡亲们也开启了新一年的忙碌。泸州市合江县是全省水稻育种和春耕生产最早的地区之一,在白米编辑说戴花劳动者的热忱青春,有着奋发复兴之力戴花要戴大红花,骑马要骑千里马。20来岁时,还是青年工人的水运宪经常哼唱这首歌。这段旋律在水运宪的心里盘旋四十多年,最后写成了一个丰满的故事。视频加载中著名作家水运宪的长篇小说戴花来自遥远的呼唤此信息来自一个位于四条对称旋臂相距4500光年的巨型棒旋星系中支臂本地臂上距离中心26400光年处一个含有4液体行星,4固体行星的单恒星系中距恒星的第三近固体行星。我们这个由含有六5万年一遇!绿色彗星归来,将与地球擦肩而过来源环球时报环球时报综合报道一颗绿色彗星将在2月1日至2日与地球擦肩而过,该彗星再次造访将是5万年之后。据美国全国公共广播电台1月31日报道,这颗彗星名为C2022E3(ZTF),宇宙有多空旷?假如把宇宙比作一个房子,星系会有多大?宇宙有多空旷?这是地球的真实画面,由阿波罗计划的宇航员在太空中拍摄的,你认识的几乎所有人和事都发生在这个蓝色的星球上。如果你像阿波罗计划的宇航员一样登上月球,你会在月球上看到这样一兔躍新程马赛2023春节联欢晚会举行(神州学人网讯)1月20日,兔躍新程马赛2023春节联欢晚会在马赛KEDGE商学院Luminy校区举行,晚会由马赛中国学生学者联合会与马赛KEDGE商学院ChineseConnec400多名大学生8年接力为山区老人拍婚纱照5万张照片里的爱情长跑圆梦计划的大学生8年来用相机镜头记录了数以千计的爱情长跑故事。受访者供图制图程璨92岁的邹世怀与85岁的赵月娥夫妇,终于在去年夏天拍好了人生中第一张特殊的婚纱照。说它特殊,是因为妻杨迪这件事,除非女方有黑料,否则真的没法挽回他的形象了!本来因为他草根出身,默默打拼很多年,接梗快,为了事业能弯腰低头,我还对他有那么一丝好感。男生不结婚,理由很简单,不过是没那么喜欢。如果真心喜欢,就会生怕她转身就离开。06年就在一起