保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

PythonElasticsearchDSL查询过滤聚合操作

  Elasticsearch基本概念
  Index:Elasticsearch用来存储数据的逻辑区域,它类似于关系型数据库中的database概念。一个index可以在一个或者多个shard上面,同时一个shard也可能会有多个replicas。
  Document:Elasticsearch里面存储的实体数据,类似于关系数据中一个table里面的一行数据。
  document由多个field组成,不同的document里面同名的field一定具有相同的类型。document里面field可以重复出现,也就是一个field会有多个值,即multivalued。
  Documenttype:为了查询需要,一个index可能会有多种document,也就是documenttype。它类似于关系型数据库中的table概念。但需要注意,不同document里面同名的field一定要是相同类型的。
  Mapping:它类似于关系型数据库中的schema定义概念。存储field的相关映射信息,不同documenttype会有不同的mapping。
  下图是ElasticSearch和关系型数据库的一些术语比较:
  Relationnaldatabase
  Elasticsearch
  Database
  Index
  Table
  Type
  Row
  Document
  Column
  Field
  Schema
  Mapping
  Schema
  Mapping
  Index
  Everythingisindexed
  SQL
  QueryDSL
  SELECTFROMtable
  GEThttp:
  UPDATEtableSET
  PUThttp:PythonElasticsearchDSL使用简介
  连接Es:importelasticsearcheselasticsearch。Elasticsearch(〔{host:127。0。0。1,port:9200}〕)复制代码
  先看一下搜索,q是指搜索内容,空格对q查询结果没有影响,size指定个数,from指定起始位置,filterpath可以指定需要显示的数据,如本例中显示在最后的结果中的只有id和type。res3es。search(indexbank,qHolmes,size1,from1)res4es。search(indexbank,q392255686,size1000,filterpath〔hits。hits。id,hits。hits。type〕)复制代码
  查询指定索引的所有数据:
  其中,index指定索引,字符串表示一个索引;列表表示多个索引,如index〔bank,banner,country〕;正则形式表示符合条件的多个索引,如index〔apple〕,表示以apple开头的全部索引。
  search中同样可以指定具体doctype。fromelasticsearchdslimportSearchsSearch(usinges,indexindextest)。execute()prints。todict()复制代码
  根据某个字段查询,可以多个查询条件叠加:sSearch(usinges,indexindextest)。query(match,sip192。168。1。1)ss。query(match,dip192。168。1。2)ss。excute()复制代码
  多字段查询:fromelasticsearchdsl。queryimportMultiMatch,MatchmultimatchMultiMatch(queryhello,fields〔title,content〕)sSearch(usinges,indexindextest)。query(multimatch)ss。execute()prints。todict()复制代码
  还可以用Q()对象进行多字段查询,fields是一个列表,query为所要查询的值。fromelasticsearchdslimportQqQ(multimatch,queryhello,fields〔title,content〕)ss。query(q)。execute()prints。todict()复制代码
  Q()第一个参数是查询方法,还可以是bool。qQ(bool,must〔Q(match,titlehello),Q(match,contentworld)〕)ss。query(q)。execute()prints。todict()复制代码
  通过Q()进行组合查询,相当于上面查询的另一种写法。qQ(match,titlepython)Q(match,titledjango)ss。query(q)。execute()print(s。todict()){bool:{should:〔。。。〕}}qQ(match,titlepython)Q(match,titledjango)ss。query(q)。execute()print(s。todict()){bool:{must:〔。。。〕}}qQ(match,titlepython)ss。query(q)。execute()print(s。todict()){bool:{mustnot:〔。。。〕}}复制代码
  过滤,在此为范围过滤,range是方法,timestamp是所要查询的field名字,gte为大于等于,lt为小于,根据需要设定即可。
  关于term和match的区别,term是精确匹配,match会模糊化,会进行分词,返回匹配度分数,(term如果查询小写字母的字符串,有大写会返回空即没有命中,match则是不区分大小写都可以进行查询,返回结果也一样)范围查询ss。filter(range,timestamp{gte:0,lt:time。time()})。query(match,countryin)普通过滤res3s。filter(terms,balancenum〔39225,5686〕)。execute()复制代码
  其他写法:sSearch()ss。filter(terms,tags〔search,python〕)print(s。todict()){query:{bool:{filter:〔{terms:{tags:〔search,python〕}}〕}}}ss。query(bool,filter〔Q(terms,tags〔search,python〕)〕)print(s。todict()){query:{bool:{filter:〔{terms:{tags:〔search,python〕}}〕}}}ss。exclude(terms,tags〔search,python〕)或者ss。query(bool,filter〔Q(terms,tags〔search,python〕)〕)print(s。todict()){query:{bool:{filter:〔{bool:{mustnot:〔{terms:{tags:〔search,python〕}}〕}}〕}}}复制代码
  聚合可以放在查询,过滤等操作的后面叠加,需要加aggs。
  bucket即为分组,其中第一个参数是分组的名字,自己指定即可,第二个参数是方法,第三个是指定的field。
  metric也是同样,metric的方法有sum、avg、max、min等,但是需要指出的是,有两个方法可以一次性返回这些值,stats和extendedstats,后者还可以返回方差等值。实例1s。aggs。bucket(percountry,terms,fieldtimestamp)。metric(sumclick,stats,fieldclick)。metric(sumrequest,stats,fieldrequest)实例2s。aggs。bucket(perage,terms,fieldclick。keyword)。metric(sumclick,stats,fieldclick)实例3s。aggs。metric(sumage,extendedstats,fieldimpression)实例4s。aggs。bucket(perage,terms,fieldcountry。keyword)实例5,此聚合是根据区间进行聚合aA(range,fieldaccountnumber,ranges〔{to:10},{from:11,to:21}〕)ress。execute()复制代码
  最后依然要执行execute(),此处需要注意,s。aggs操作不能用变量接收(如ress。aggs,这个操作是错误的),聚合的结果会保存到res中显示。
  排序sSearch()。sort(category,title,{lines:{order:asc,mode:avg}})复制代码
  分页ss〔10:20〕{from:10,size:10}复制代码
  一些扩展方法,感兴趣的同学可以看看:sSearch()设置扩展属性使用。extra()方法ss。extra(explainTrue)设置参数使用。params()ss。params(searchtypecount)如要要限制返回字段,可以使用source()方法onlyreturntheselectedfieldsss。source(〔title,body〕)dontreturnanyfields,justthemetadatass。source(False)explicitlyincludeexcludefieldsss。source(include〔title〕,exclude〔user。〕)resetthefieldselectionss。source(None)使用dict序列化一个查询sSearch。fromdict({query:{match:{title:python}}})修改已经存在的查询s。updatefromdict({query:{match:{title:python}},size:42})复制代码

请节约用水作文介绍水是人们不可缺少东西,如果没有水,就没有生命。面是小编为您整理有关节约用水作文,希望对您有所帮助。篇一:节约用水作文哗啦,哗啦多刺耳流水声,又有人在浪费水了!在校园里,我……旅行的感悟优秀作文近来,不知为什么,旅行这一个词被炒的火热,在电视、书籍、报纸的出现率极高。每遇放假说的最多的也是来一场说走就走的旅行吧。不知是不是这样浓浓的氛围影响了我,以前那个胆小不敢……QAbstractTableModel读取数据以及QStyl使用QStyleItemDelegate修改数据,官网有QSpinBox例子,这里使用QComboBoxh头文件ClassClassMaterDelegate:publi……拾起传统作文在日复一日的学习、工作或生活中,说到作文,大家肯定都不陌生吧,作文是由文字组成,经过人的思想考虑,通过语言组织来表达一个主题意义的文体。如何写一篇有思想、有文采的作文呢?下面是……接力赛小学作文300字阳光明媚的四月,我们迎来了一年一度的接力赛。运动场上,加油声、雀跃声,与运动员矫健的身姿构成了一幅充满活力的画卷。我们排着整齐的队伍,来到了操场,过了几分钟后,接力赛就开……背着爸爸上学观后感作文《背着爸爸上学》这部电影主要讲了:有一家人,他们家境贫寒,很早就失去了妈妈,但他们也很幸运,有着一个爱他们的父亲。他们一家共三个人,小男孩叫石娃,他们姐弟俩都很想上学,但父亲的……兰州中考满分作文600字赏析一个重拾信念的日子只要心中还有目标,一路上的艰辛又算得了什么呢?感谢这个特别的日子,是它,帮我拾回了遗失已久的信念。下面是小编整理的一个重拾信念的日子满分作文,希望可以帮助大家!【作文题目……空调的利弊四年级作文在炎热的夏天人们都会觉得外面的空气温度十分的高,都想待在屋里吹着空调,喝着冷饮,觉得这样十分的惬意。的确,空调是一种神奇的发明,它能够让温度变高或者变低,从而适应人的体温让人觉……电商真的是伤害了实体经济吗?问题背后的时代困局电商真的是伤害了实体经济吗?先进生产力代替落后生产力是规律,但是,更本质的是人类的生产商业行为是为了人类的有利,违背了这个就会出现劣币驱逐良币的退化。逃避质检、合规……2015年重庆中考满分作文微笑的味道ldquo;得作文者得语文rdquo;,作文分数占了语文试卷的半壁江山,同学们需要引起足够的重视。学习作文范文是提高作文分数的一个重要手段。考试吧中考频道汇总了全国部分地区的中……有关有关奶奶的作文400字合集8篇在平平淡淡的学习、工作、生活中,说到作文,大家肯定都不陌生吧,借助作文人们可以反映客观事物、表达思想感情、传递知识信息。那么你有了解过作文吗?以下是小编为大家收集的有关奶奶的作……雪,你来了高中作文500字盼望了你好久,你却迟迟不肯露娇容。而在冬去春来,万物萌生时,你才飘洒出优雅的身姿,粉刷这个尘世。雪,你来了,你终于来了。一如往日的风采,你还是洁白一身,轻轻盈盈,六瓣的躯……
记一次玩丢手绢的小学作文导语:快乐的一天有半天是时间是在玩丢手绢这个游戏的。这个柚子是爱是太有趣啦!以下是小编为大家收集的几篇题为记一次玩丢手绢的小学的作文。供大家参考阅读。希望喜欢。记一次玩丢……安徽加强五一期间网络交易违法行为监测记者昨日从省市场监管局获悉,4月20日至5月20日,该局将在全省范围内加强五一期间网络交易违法行为监测。本次监测以省外重点电商平台内的本地经营者、本地网络交易平台及平台内……参观科技馆作文范文推荐三篇篇一:参观科技馆酷暑的炎热像滚滚热浪一般席卷而来,蝉在枝头上高声鸣叫,街上过往的行人汗流浃背。可我的心情却丝毫不被这酷暑所影响,因为我马上就要到达这次上海行最重要的目的地……申通快递今年一季度利润预增200与疫情前相比仅恢复近三成水平新快报讯记者林广豪报道A股快递企业3月经营数据近日公布,申通快递的同比增速在通达系企业中占据优势。申通快递预计,今年一季度净利润为0。9亿1。……我妈妈的爱叙事作文有一首歌唱得好:世上只有妈妈好。是的,妈妈的爱比山还要高,比海还要深,这种亲情使我终身难忘!有一次,我们家炖鸡吃,我高兴极了。吃的时候妈妈总是往我的碗里夹好肉,还不停地说……关于探险的作文童年的冒险说道冒险,我便想起那一次。那时我只有五岁,却什么都敢碰,可唯独一样东西不敢动只有五厘米长的打火机。因为奶奶对我和妹妹说:玩儿火的小孩晚上会尿床,如果你们玩儿火尿床,我就要……图书馆之变五年级作文原来,青岛市没有那么多在马路上奔驰的汽车,没有耸入云霄的高楼大厦,没有人人爱穿的时髦衣裳,也没有及时反映路况信息的交通指示牌这样的变化太多太多,多得数不胜数,其中,让我体会最深……遗传物质的发现之旅1。初次发现细菌转化奠定了DNA是遗传物质的基础,科学家观察到野生型和突变型肺炎克雷伯杆菌致病能力差异可能与其形成荚膜的能力有关,前者能够产生光滑并分泌粘液的荚膜,而后者……我国新能源汽车累计推广1033万辆昨天,国务院新闻办公室举行新闻发布会,介绍2022年一季度工业和信息化发展情况。工业和信息化部新闻发言人、运行监测协调局局长罗俊杰介绍,我国新能源汽车累计推广1033万辆,一季……京医通停运,置公共利益于何地京医通将于4月20日9时起停运?4月18日,一份加盖京医通运营方北京怡合春天科技有限公司公章的停运通知引发广泛关注。4月19日凌晨,北京市卫健委对此作出回应。(详情戳《网传京医……2022年4月20日币圈新闻一分钟速读(简化版)关键词:杭州互联网法院、Optimism、腾讯动漫、Messari1。杭州互联网法院:用户在元宇宙平台发布NFT平台应尽到审查义务;2。英国金融行为监管局已任命数字……我读懂了你初二作文900字我们班的班主任兼语文老师,姓汪名文娟,人称汪大人。别看她瘦瘦小小还长着一张娃娃脸,教起书来一点儿也不含糊,管理起班级来也十分有方。作为语文老师,汪大人从不循规蹈矩地只教书……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网