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

玩转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

海外网深一度中期选举折射美国深度撕裂根据美联社美国有线电视新闻网(CNN)华盛顿邮报等多家美媒报道,11月16日,美国共和党获得了跨过众议院多数门槛的218个席位,在4年之后重掌国会众议院。此前,民主党在参议院获得5痛经久治不愈,苦不堪言,怎样辨证,怎么应对?症状和原因190以上的年轻女性倍受痛经折磨,严重时会痛到直打滚,脸色苍白全身无力,甚至引起昏厥,苦不堪言。2究其原因,还是不通则痛或是虚证的不荣则痛,也就是一是因气血运行不畅,经血羊肉,是癌细胞的催命符吗?劝告这四种肉,尽量少吃吃羊肉,对人的身体有什么好处?1增加人体热量羊肉中含有大量的脂肪,脂肪可以抵御严寒,增加热量,维持人体正常体温,促进人体的新陈代谢。2提高免疫力羊肉性温,吃起来回甘,营养价值很高,一个百年方,3味药泡水,治浑身疼痛,化全身瘀血,通周身经络大家好,我是赵医生。你有没有经常感觉头疼腰疼腿疼,身上哪哪都疼。今天,赵医生教你用3味药泡水,疏通血脉,止一身疼痛。有很多人经常感觉身上疼痛,头疼腰疼肩膀疼腿疼,反正不是这疼就是那天气越冷,越容易上火!坚持用5种茶水泡水喝,能降五脏火气大家发现天气越冷,身体却越容易上火。因为,人与天地相应,冬天的时候人体肌腠紧密毛孔收敛,人们减少活动,多穿厚衣服以减少阳气外泄。积聚于体内的阳气在某些情况下会变成火热邪气,导致出现威少三方交易新方案出炉!勇士送走追梦怀斯曼詹姆斯可获两大强援湖人和勇士开局都不理想,两队客场加在一起0胜12负。爵士虽然打出不错的开局,但他们的真正目标本该是摆烂去争文班亚马。北京时间11月16日,美媒Heavy支招这三支球队进行一笔涉及威高洪波的10倍,米卢的4倍,800万年薪,4年肥约,李铁被调查2002年带领国足打进了世界杯的神奇教练米卢,年薪只有区区200万元,还不如李铁的一个助教工资。取得的成就最大,年薪却少得可怜,米卢拿钱办事的本领在国足历届教练中最高。同样是本土教咋办加纳国家队出征忘带球衣,邮政首战葡萄牙前可能无法送达直播吧11月15日讯世界杯还有5天打响,但加纳队却遭遇了一件糗事。据奥莱报报道,加纳国家队出征忘带球衣,邮政可能没法在首战葡萄牙前送到。据奥莱报报道,加纳领队忘记带全队的球衣,他们第六百八十三章从进炮腾位发展到退炮空出双炮一线重兵突击第六百八十三章从进炮腾位发展到退炮空出双炮一线重兵突击在经历后手列炮到不列炮,保留侧翼退炮打车驱逐过肋车后,红方发展出中路进中路吸引对方卒离原位的中路去子战术,这也是使炮平中路变成嘴炮康纳竟然点赞小麻迪亚兹抽狄龙嘴巴钱德勒UFC281赛后叫阵嘴炮嘴炮康纳麦格雷戈(ConorMcGregor)在社交媒体上上点赞了小麻内特迪亚兹(NateDiaz)扇嘴炮前队友兼柔术教练迪龙丹尼斯(DillonDanis)耳光的行为,这条推文已16强确定!斯诺克7大种子出局4大巨星遭淘汰,丁俊晖连获好消息北京时间2022年11月16日,斯诺克英锦赛结束第4比赛日争夺,首轮最后两场比赛争夺十分激烈,肖恩墨菲65险胜大卫吉尔伯特,塞尔比46不敌侯赛因瓦菲,爆冷出局,他也是首轮第7位被淘
纽约枪击案中的好市民,真实身份尴尬了他们帮助了美国,美国会帮助他们吗?美国纽约时报报道截图据美国纽约时报报道,为了逮捕于4月12日在美国纽约的地铁车厢里制造了大规模枪击案的美国黑人男子弗兰克詹姆斯,当地官方曾寻求四名同样是演生孩子,把孙俪任素汐杨幂杨颖放一起看,高下立判文贵圈毒姐在很多影视剧作品中,都会有这样一个的镜头,生孩子,毕竟这是现实生活中大部分女人都会遇到的一幕。当然这对演员是一个很大的考验,有的女演员能够演得入木三分,有的却只能看看而已中国要买俄罗斯武器?中方强硬表态给普京吃下定心丸俄罗斯的胜利日阅兵所展示的新装备又一次刷新了记录,35种新型和经过现代化升级装备的高调亮相,让全球再次看到了俄罗斯的国防工业成就。配备匕首高超音速导弹的米格31K苏57隐形战斗机最三级片女神情史和黑道历险记一1976年,舒淇一出生就遭到了母亲的嫌弃。看到女儿第一眼,妈妈就长叹一声一个女孩子,嘴巴这么大,今后嫁得出去吗?舒淇的妈妈,那时一定没想到,日后,这个大嘴厚唇的女孩,将成为一代性李嘉诚中年丧妻,与红颜知己相伴28年,为何至今不敢娶进门?作为曾经的华人首富,民众对李嘉诚感兴趣的不仅是他的创业经历,还有他的感情经历。李嘉诚的原配夫人是他的表妹庄月明,在跟自己的表妹结婚以后,李嘉诚得到自己岳父庄静庵的支持,事业彻底迎来佩杜拉博格巴下定决心要回归尤文效力,巴黎已经掉队直播吧5月19日讯据意大利记者佩杜拉独家报道称,尤文已经为博格巴正式提供800万欧奖金的报价,目前巴黎已经掉队。尤文在最近的几个小时里加速了引进博格巴的交易。据佩杜拉报道称,尤文已老祖宗观人术男怕水蛇腰,女怕小噘嘴,是什么缘故?准不准不论在哪个国度生活的人,在时代与社会快速变迁之后,身边所存在的文化与习俗也都会被改变,哪怕是在曾经消息闭塞的封建时代,人类也依旧是环境的产物。环境之于人类日常生活的作用极为重大,为今天开售!欧拉芭蕾猫,保时捷设计师亲手打造,仅售9万不火都难今天说的这款车就是长城汽车旗下的欧拉芭蕾猫。根据最新的市场消息显示,欧拉芭蕾猫将于今日正式开启预售,今年6月月15日前后正式上市。新车走个性路线,定位女性专属座驾芭蕾猫为爱而来为你何润东曾唱小李飞刀片尾曲结果无人认识歌红人不红文震在发生编辑震在发生人中吕布,马中赤兔,方天画戟,专杀义夫。此一言,说的就是三国中的吕布。而吕布的扮演者何润东也因此二度翻红。何润东,1975年9月13日出生于美国加利福尼亚州。贵阳1995年的15张照片1。1995年,贵阳开往武汉的列车上,一名无座位乘客躺到椅子背上去的情景。2。1995年,贵州省贵阳市,都司路高架桥景象。3。1995年,贵阳中医学院学报第十七卷第一期。4。199琳琳,想你回来12岁时,我们相识,42岁时,我们相望。三十年,你从学霸成长为教授,出版著作,各地讲学,培养学生这些成就,都令大家佩服。可是,我依然称呼你为琳琳,甚至我们曾经开玩笑说,等你成了老太