版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大数据技术之Elasticsearch【下】3.1.6新建文档(源数据map方式添加json)1)源代码TestpublicvoidcreateIndexByMap()/1文档数据准备Mapjson=newHashMap();json.put(id,2);json.put(title,基于Lucene的搜索服务器);json.put(content,”它提供了一个分布式多用户能力的全文搜索弓I擎, 基于RESTfulweb接口)/2创建文档IndexResponseindexResponse=client.prepareIndex(blog,article,2).setSource(json)
2、.execute().actionGet();/3打印返回的结果System.out.println(index:+indexResponse.getIndex();System.out.println(type:+indexResponse.getType();System.out.println(id:+indexResponse.getId();System.out.println(version:+indexResponse.getVersion();System.out.println(result:+indexResponse.getResult();/4关闭连接client.cl
3、ose();2)结果查看PrtiblemgJavadoc*Oeclaston曰ClieniTe.crejtelndetSyMap:日百9北。74=45山;保鹏金正早3月发习上午丸队耳22,20179:40;56arg+elasticsearch+pLuginsiPluginsService信息:AllisonBldiremodules,plugins,sitesor.elasticsearch,client,transport.Tran5portClient369d+65bindextblogtype:articleid:2version;1create:true3.1.7新建文档(源数据es
4、构建器添加json)1)源代码TestpublicvoidcreateIndex()throwsException/1通过es自带的帮助类,构建json数据XContentBuilderbuilder=XContentFactory.jsonBuilder().startObject().field(id,3).field(title,基于Lucene的搜索服务器).field(content,”它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。).endObject();/2创建文档IndexResponseindexResponse=client.prepareIn
5、dex(blog,article,3).setSource(builder).get();/3打印返回的结果System.out.println(index:+indexResponse.getIndex();System.out.println(type:+indexResponse.getType();System.out.println(id:+indexResponse.getId();System.out.println(version:+indexResponse.getVersion();System.out.println(result:+indexResponse.getRe
6、sult();/4关闭连接client.close();2)结果查看P-ablemE阳JavadocaD&cIarsticm用Console/号wlBTminataJKwlBTminataJK匚iwnCrastxfMfllhdmjiRMiwnCrastxfMfllhdmjiRM河EAPKjqrnEEAPKjqrnE川西六司胸jdkL7QjdkL7Q忡ifnavaMmg(2Q17ifnavaMmg(2Q17年8 8月2222日上午伏442442用八月22017:27org.elasticsearch,pluginsiPLuginsService自SISI/ /I I,旧*drdrntTvntTv
7、KgviltavPUKgviltavPU同E E簟roiffwroiffw牺IWG”.!;i i,A.f-,A.f-22,22,201710:06:4org.elasticsearch.plugins.PluginsServic201710:06:4org.elasticsearch.plugins.PluginsServic信皂:slgnnodules,plqginsslgnnodules,plqgins口,ntnt萤FFidUidU, ,气壮加星亍LuteneELuteneE用陆甲WJTWJTJententn.Jententn.它提供了一千升由动用尸富力的至更N N常青摩,基干RE5T+u
8、lRE5T+ul*手口3.1.9搜索文档数据(多个索引)1)源代码TestpublicvoidgetMultiData()/1查询多个文档MultiGetResponseresponse=client.prepareMultiGet().add(blog,article,1).add(blog,article,2,3).add(blog,article,2).get();/2遍历返回的结果for(MultiGetItemResponseitemResponse:response)GetResponsegetResponse=itemResponse.getResponse();/如果获取到查询
9、结果if(getResponse.isExists()StringsourceAsString=getResponse.getSourceAsString();System.out.println(sourceAsString);/3关闭资源client.close();2)结果查看我:1,世,:基于Lucene的搜索服务器”content:它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口”content:它 提 供 了 一 个 分 布 式 多 用 户 能 力 的 全 文 搜 索 引 擎 , 基 于RESTfulweb接 口,id:2,title:基于Lucene的搜索
10、服务器id:3,titile:ElasticSearch是一个基于Lucene的搜索服务器”content:它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。content:它 提 供 了 一 个 分 布 式 多 用 户 能 力 的 全 文 搜 索 引 擎 , 基 于RESTfulweb接 口,id:2,title:基于Lucene的搜索服务器3.1.10更新文档数据(update)1)源代码注:只能对已有得文件进行更改TestpublicvoidupdateData()throwsThrowable/1创建更新数据的请求对象UpdateRequestupdateReq
11、uest=newUpdateRequest();updateRequest.index(blog);updateRequest.type(article);updateRequest.id(3);updateRequest.doc(XContentFactory.jsonBuilder().startObject()/对没有的字段添加,对已有的字段替换.field(title,基于Lucene的搜索服务器).field(content,”它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。大数据前景无限).field(createDate,2017-8-22).endOb
12、ject();/2获取更新后的值UpdateResponseindexResponse=client.update(updateRequest).get();/3打印返回的结果System.out.println(index:+indexResponse.getIndex();System.out.println(type:+indexResponse.getType();System.out.println(id:+indexResponse.getId();System.out.println(version:+indexResponse.getVersion();System.out.p
13、rintln(create:+indexResponse.getResult();/4关闭连接client.close();2)结果查看ElDsticscarchElDsticscarch三手血叫的w w伊&,吗U U = =举=扎J J3rlM3rlM吊彳*日iJfiiJfi . .断加,卜.D.D _idiwore-_idiwore- -cixntantidltltlsowlaDwtecixntantidltltlsowlaDwteb百热了一第至=3B=3B的*ffUMdffUMd口3 3”业修i i司 1 了-一片】1 1=而=了-一+=二彳三1 1:一:最一带叱T TL二丁1 1事彳土
14、-. .r rririI I:. .: : 皿3 3iiiitCETtHTtCETtHTfridfridf fHE4.1.1更新文档数据(upsert)设置查询条件,查找不到则添加IndexRequest内容,查找到则按照UpdateRequest更新。TestpublicvoidtestUpsert()throwsException/设置查询条件,查找不到则添加IndexRequestindexRequest=newIndexRequest(blog,article,5).source(XContentFactory.jsonBuilder().startObject().field(tit
15、le,搜索服务器).field(content,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。日asticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。).endObject();/设置更新,查找到更新下面的设置UpdateRequestupsert=newUpdateRequest(blog,article,5).doc(XContentFactory.jsonBuilder().startObject().field(user,李四).e
16、ndObject().upsert(indexRequest);client.update(upsert).get();client.close();第一次执行bigdata11:9200/blog/article/5CahadoDpl02;9200/bkra/articte/5Q用白气力弟全文牌青引至,里士亚 NTH1NTH1 强噂口皿 ticatica 尔蝇用丁的用友的,并作力时口山*洞荣会下的开社通码发而是:当黄馀仃的定 1111 瘫三弓里强计帚于三讣苴:,道诚姑则史羽忸率,心也,出至,曲.由,更从佳用卜惮,第二次执行bigdata11:9200/blog/article/5Q。hadd
17、oplOJ:92U0/LJIog/diticlf?/5Q支;用口甑力的工文主源用攀,基于 EES7EUEES7EU”礴口*肛”1 1 打工*3 3 二用 1 1 到小颗.产作为蚱加匕仔可手猛 I I、的升机四及而,是当面都附 1M1M 夏融京弓的曲1+用于云计比札16埠达到刘州拈智史,可能,利更,专需使用力*注五下四个4.1.2删除文档数据(prepareDelete)1)源代码TestpublicvoiddeleteData()/1删除文档数据DeleteResponseindexResponse=client.prepareDelete(blog,article,5).get();/2打印
18、返回的结果System.out.println(index:+indexResponse.getIndex();System.out.println(type:+indexResponse.getType();System.out.println(id:+indexResponse.getId();System.out.println(version:+indexResponse.getVersion();System.out.println(found:+indexResponse.getResult();/3关闭连接client.close();2)结果查看一PrcblsmsPrcblsm
19、s何白d d 点IMIMDeclaratiDnDeclaratiDn且ConsoConsoe e ProgressProgress-ctcmninatcdClkntTest.dcletcDatoJAJritE;Pr(jgrarn-ctcmninatcdClkntTest.dcletcDatoJAJritE;Pr(jgrarn国。队!1 1也*1卜1Z0.451Z0.45日四日心*-3t|3t|:2020| |1 11 17070月2222日上413413;44;2T)44;2T)八 月2乙20171G;44:27Torg,elasticsearcb.plugins.PluginsService
20、宕 息 :MasterofVengeanceJmodulesJ,pluginsJjsitesJindex:blGgtype:articleid:lversion:3 3found:true3.2条件查询QueryBuilder查询所有(matchAllQuery)1)源代码TestpublicvoidmatchAllQuery()/1执行查询SearchResponsesearchResponse=client.prepareSearch(blog).setTypes(article).setQuery(QueryBuilders.matchAllQuery().get();/2打印查询结果S
21、earchHitshits=searchResponse.getHits();/获取命中次数,查询结果有多少对象System.out.println(查询结果有:+hits.getTotalHits()+条);for(SearchHithit:hits)System.out.println(hit.getSourceAsString();/打印出每条结果/3关闭连接client.close();I|2)结果查看对所有字段分词查询(queryStringQuery)1)源代码Testpublicvoidquery()/1条件查询SearchResponsesearchResponse=clien
22、t.prepareSearch(blog).setTypes(article).setQuery(QueryBuilders.queryStringQuery(全文).get();/2打印查询结果SearchHitshits=searchResponse.getHits();/获取命中次数,查询结果有多少对象System.out.println(查询结果有:+hits.getTotalHits()+条)for(SearchHithit:hits)System.out.println(hit.getSourceAsString();/打印出每条结果)/3关闭连接client.close();2)
23、结果查看通配符查询(wildcardQuery)*:表示多个字符(0个或多个字符)?:表示单个字符2)结果查看3.2.4词条查询(TermQuery)1)源代码TestpublicvoidwildcardQuery()/1通配符查询SearchResponsesearchResponse=client.prepareSearch(blog).setTypes(article).setQuery(QueryBuilders.wildcardQuery(content,*全*).get();SearchHitshits=searchResponse.getHits();/获取命中次数,查询结果有多
24、少对象System.out.println(查询结果有:+hits.getTotalHits()+条)for(SearchHithit:hits)System.out.println(hit.getSourceAsString();/打印出每条结果)/3关闭连接client.close();)TestpublicvoidtermQuery()/1第一field查询SearchResponsesearchResponse=client.prepareSearch(blog).setTypes(article).setQuery(QueryBuilders.termQuery(content,全文
25、).get();SearchHitshits=searchResponse.getHits();/获取命中次数,查询结果有多少对象System.out.println(查询结果有:+hits.getTotalHits()+条);for(SearchHithit:hits)System.out.println(hit.getSourceAsString();/打印出每条结果)/3关闭连接client.close();2)结果查看 后五后五* *,U. .观观11g.i.UMHBV V曲芸曲芸 T,F3IE4TW巾巾 nrT_U.,LrrW0|5 1调调/,.附哂附哂M19fxiIt:”j/iid
26、ZledNplusin 卡卡 10 息息TLeof)/chiiidp*. .in 小孔小孔 RmiW#*Pl1;“.】ladMplUghl 口口 rfr1.ulLcsrth.JQLILFtu*riljQ.nPlu.gl-ii.IgdMpluiin【距【距 0 昂昂 tiXBenrrh 口中口中FCQIBIOT.F 磨磨 rmlMtQrFl4M:n】.l-oiddphugi 巾巾grg,+131LHf 时代匕时代匕 atripLHURI:耻匕包耻匕包 u$MkrP:ug】4LxgdMpu(inorg.flMtics?flrch,transpijrl,tTvSPlmin.110dt4uliifin
27、? ?电电/lastimrthtiM1npm*Mtu4Plu-in:erf.arrehtnn.vport.clintPTABIIiItTrA-aaportCliwitft5ft5B4 即即0%Procfisfinijh 同同 vsih 守守 xilcod?03.2.5模糊查询(fuzzy)Testpublicvoidfuzzy()/1模糊查询SearchResponsesearchResponse=client.prepareSearch(blog).setTypes(article).setQuery(QueryBuilders.fuzzyQuery(title,lucene).get();
28、/2打印查询结果SearchHitshits=searchResponse.getHits();/获取命中次数,查询结果有多少对象System.out.println(查询结果有:+hits.getTotalHits()+条);Iteratoriterator=hits.iterator();while(iterator.hasNext()SearchHitsearchHit=iterator.next();/每个查询对象System.out.println(searchHit.getSourceAsString();/获取字符串格式打印/3关闭连接client.close();3.3映射相关
29、操作1)源代码TestpublicvoidcreateMapping()throwsException/1设置mappingXContentBuilderbuilder=XContentFactory.jsonBuilder().startObject().startObject(article).startObject(properties).startObject(id1).field(type,string).field(store,yes).endObject().startObject(title2).field(type,string).field(store,no).endObject().startObject(content).field(type,string).field(store,yes).endObject().endObject().endObject().endObject();/2添力口mappingPutMappingRequest
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度高空作业安全生产施工合同集2篇
- 二零二五年度绿色环保木工支模项目合同4篇
- 2025版木箱纸箱包装设计创新与市场推广合同4篇
- 2025年度个人购房合同产权转移登记流程4篇
- 2025版二零二五年度现代木工清工分包合同模板4篇
- 【新课标Ⅲ卷】高三第二次全国大联考语文试卷(含答案)
- 爱学习有自信幼儿舞蹈创编15课件讲解
- 2025年专业期刊发行协议
- 2025年合伙劳动分工协议
- 2025年教育捐赠合同样本
- 2024公路沥青路面结构内部状况三维探地雷达快速检测规程
- 2024年高考真题-地理(河北卷) 含答案
- 2024光储充一体化系统解决方案
- 处理后事授权委托书
- 食材配送服务方案投标方案(技术方案)
- 足疗店营销策划方案
- 封条(标准A4打印封条)
- 2024年北京控股集团有限公司招聘笔试参考题库含答案解析
- 延迟交稿申请英文
- 运动技能学习与控制课件第十章动作技能的指导与示范
- 石油天然气建设工程交工技术文件编制规范(SYT68822023年)交工技术文件表格仪表自动化安装工程
评论
0/150
提交评论