游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

上穷碧落下凡尘Win10基于Docker配置Elastics

  基于文档式的全文检索引擎大家都不陌生,之前一篇文章:使用Redisearch实现的全文检索功能服务,曾经使用Rediseach来小试牛刀了一把,文中戏谑的称Rediseach已经替代了Elasticsearch,其实不然,Elasticsearch作为老牌的全文检索引擎还并没有退出历史舞台,依旧占据主流市场,桃花依旧笑春风,阿里也在其ecs服务中推出了云端Elasticsearch引擎,所以本次我们在Win10系统中依托Docker来感受一下Elasticsearch的魅力。
  首先安装Docker,具体流程请参照:win10系统下把玩折腾DockerToolBox以及更换国内镜像源(各种神坑),这里不再赘述。
  拉取Elasticsearch镜像,这里我们使用7。0以上的版本,该版本从性能和效率上都得到了优化。dockerpullelasticsearch:7。2。0
  随后运行Elasticsearch镜像dockerrunnameesp9200:9200p9300:9300ediscovery。typesinglenodedelasticsearch:7。2。0
  容器别名我们就用缩写es来替代,通过9200端口并使用Elasticsearch的原生传输协议和集群交互。集群中的节点通过端口9300彼此通信。如果这个端口没有打开,节点将无法形成一个集群,运行模式先走单节点模式。
  启动容器成功后,可以访问一下浏览器:http:localhost:9200
  OK,没有任何问题,Elasticsearch采用YAML文件对系统进行配置,原理很简单,就像Django的settings或者Flask的Config,只要通知Elasticsearch服务在运行过程中一些你想要的功能,而Elasticsearch会找到elasticsearch。yml,之后按你指定的参数运行服务。
  此时,我们需要将容器内部Elasticsearch的配置文件拷贝出来,这样以后启动容器就可以按照我们自己指定的配置来修改了。dockercp容器id:usrshareelasticsearchconfigelasticsearch。yml。elasticsearch。yml
  老规矩,前面的是容器内地址,后面的是宿主机地址,这里我就拷贝到当前目录下,当然了,你也可以指定绝对路径。
  打开elasticsearch。yml,可以自己加一些配置,比如允许跨域访问,这样你这台Elasticsearch就可以被别的服务器访问了,这是微服务全文检索系统架构的第一步。cluster。name:dockerclusternetwork。host:0。0。0。0http。cors。enabled:truehttp。cors。alloworigin:
  然后停止正在运行的Elasticsearch容器,并且删除它。dockerstop容器iddockerrm(dockerpsaq)
  再次启动Elasticsearch容器,这一次不同的是,我们需要通过v挂载命令把我们刚刚修改好的elasticsearch。yml挂载到容器内部去,这样容器就根据我们自己修改的配置文件来运行Elasticsearch服务。dockerrunnameesveselasticsearch。yml:usrshareelasticsearchconfigelasticsearch。ymlp9200:9200p9300:9300ediscovery。typesinglenodedelasticsearch:7。2。0
  这里需要注意一点,就是在Win10宿主机里需要单独设置一下共享文件夹,这里我设置的共享文件夹叫做es,如果是Centos或者Macos就直接写真实物理路径即可。
  这里再简单介绍一下Win10如何设置共享文件夹用来配合Docker的挂载,打开virtualBox设置,新建一个共享文件夹es
  随后,重启Docker,输入命令进入默认容器:dockermachinesshdefault
  在容器根目录能够看到刚刚设置的共享文件夹,就说明设置成功了。
  另外还有一个需要注意的点,就是Elasticsearch存储数据也可以通过v命令挂载出来,如果不对数据进行挂载,当容器被停止或者删除,数据也会不复存在,所以挂载后存储在宿主机会比较好一点,命令是:
  dockerrunnameesveselasticsearch。yml:usrshareelasticsearchconfigelasticsearch。ymlvesdata:usrshareelasticsearchdatap9200:9200p9300:9300ediscovery。typesinglenodedelasticsearch:7。2。0
  再次启动容器成功之后,我们就可以利用Python3来和全文检索引擎Elasticsearch进行交互了,安装依赖的库。pip3installelasticsearch
  新建estest。py测试脚本
  建立Elasticsearch的检索实例fromelasticsearchimportElasticsearchesElasticsearch(hosts〔{host:Docker容器所在的ip,port:9200}〕)
  这里的host指容器ip,因为可以扩展集群,所以是一个list,需要注意一点,如果是Win10就是系统分配的那个ip,Centos或者Macos直接写127。0。0。1即可。
  建立索引(Index),这里我们创建一个名为article的索引resultes。indices。create(indexarticle,ignore400)print(result){acknowledged:True,shardsacknowledged:True,index:article}
  其中的acknowledged字段表示创建操作执行成功。
  删除索引也是类似的,代码如下:resultes。indices。delete(indexarticle,ignore〔400,404〕)print(result){acknowledged:True}
  插入数据,Elasticsearch就像MongoDB一样,在插入数据的时候可以直接插入结构化字典数据,插入数据可以调用index()方法,这里索引和数据是强关联的,所以插入时需要指定之前建立好的索引。data{title:我在北京学习人工智能,url:http:123。com,content:在北京学习}resultes。index(indexarticle,bodydata)print(result){index:article,type:doc,id:GyJgb3MBuQaE6wYOApTh,version:1,result:created,shards:{total:2,successful:1,failed:0},seqno:5,primaryterm:1}
  可以看到index()方法会自动生成一个唯一id,当然我们也可以使用create()方法创建数据,不同的是create()需要手动指定一个id。
  修改数据也非常简单,我们同样需要指定数据的id和内容,调用index()方法即可,代码如下:data{content:在北京学习python}修改resultes。index(indexarticle,bodydata,idGyJgb3MBuQaE6wYOApTh){index:article,type:doc,id:GyJgb3MBuQaE6wYOApTh,version:2,result:updated,shards:{total:2,successful:1,failed:0},seqno:6,primaryterm:1}
  删除数据,可以调用delete()方法,指定需要删除的数据id即可删除resultes。delete(indexarticle,idGyJgb3MBuQaE6wYOApTh)print(result){index:article,type:doc,id:GyJgb3MBuQaE6wYOApTh,version:3,result:deleted,shards:{total:2,successful:1,failed:0},seqno:7,primaryterm:1}
  查询数据,这里可以简单的查询全量数据:查询resultes。search(indexarticle)print(result){took:1079,timedout:False,shards:{total:1,successful:1,skipped:0,failed:0},hits:{total:{value:5,relation:eq},maxscore:1。0,hits:〔{index:article,type:blog,id:1,score:1。0,source:{title:我在北京学习人工智能,url:http:123。com,content:在北京学习}},{index:article,type:blog,id:FyIdb3MBuQaE6wYO8JQR,score:1。0,source:{title:你好,content:你好123}},{index:article,type:blog,id:GCIeb3MBuQaE6wYOnpSv,score:1。0,source:{title:你好,url:http:123。com,content:你好123}},{index:article,type:blog,id:GSJfb3MBuQaE6wYOu5RD,score:1。0,source:{title:你好,url:http:123。com,content:你好123}},{index:article,type:blog,id:GiJfb3MBuQaE6wYO5pR4,score:1。0,source:{title:你好,url:http:123。com,content:你好123}}〕}}
  还可以进行全文检索,这才是体现Elasticsearch搜索引擎特性的地方。mapping{query:{match:{content:学习北京}}}resultes。search(indexarticle,bodymapping)print(result){took:4,timedout:False,shards:{total:1,successful:1,skipped:0,failed:0},hits:{total:{value:1,relation:eq},maxscore:4。075481,hits:〔{index:article,type:blog,id:1,score:4。075481,source:{title:我在北京学习人工智能,url:http:123。com,content:在北京学习}}〕}}
  可以看出,检索时会对对应的字段全文检索,结果还会按照检索关键词的相关性进行排序,这就是一个基本的搜索引擎雏形。
  除了这些最基本的操作,Elasticsearch还支持很多复杂的查询,可以参照最新的7。2版本文档:https:www。elastic。coguideenelasticsearchreference7。2querydsl。html
  结语:体验了之后,有人说,Elasticsearch这玩意还真不错,能不能把Mysql或者Mongo全都扔了,就拿它当数据库不就完事了吗?答案当然是不可能的,因为Elasticsearch没有事务,而且是查询是近实时,写入速度很慢,只是读取数据快,成本也比数据库高,几乎就在靠吃内存提高性能,它目前只是作为搜索引擎的存在,如果你的业务涉及全文检索,那么它就是你的首选方案之一。

红花油能治冻疮吗?红花油能消肿吗?有时候不小心摔跤会摔得脚肿,很多人不清楚红花油到底能不能消肿,下面5号网的小编为你们介绍红花油能治冻疮吗?红花油能消肿吗?红花油能治冻疮吗红花油能治冻疮。冻疮一般和血液循……公司宝B站的商业化之路,比裁员更重要的是增效昨日,B站开启新一轮裁员,主要涉及直播、漫画、主站等业务的消息传出,引发网友热议。随后,B站相关负责人很快回应称,并无大规模裁员,而是部分业务有调整,伴随的人员调整。不论……有你这样的孩子我很幸福有你这样的孩子我很幸福有谁能听到父母这样来跟自己说,那肯定是幸福无比了。作为80尾巴,90头的我也是没有这个荣幸能够听到父母对自己有这样的肯定和认可,我觉得一方面,我的父母都比……献血有什么注意事项呢献血有什么要求呢大家在生活中应该都见过或者自己去献过血吧,但是你了解献血吗?今天我们就一起来了解一下吧,究竟献血有什么注意事项呢,以及献血有什么要求呢,跟着小编我们一起来学习吧。献血有什么注意……女人可以在月经期献血吗?献血可以在月经期间吗?献血是一件很有意义的事情,很多人最想做的一件事情就是自己成年的那一天去献血。那么,女人可以在月经期间献血吗?经期可以献血吗据专家解释,女性经期前后三天不宜献血。下面我们具……身家暴跌!马斯克世界首富宝座悬了?在特斯拉股票暴跌和砸钱收购推特之后,埃隆马斯克现在恐怕要保不住世界首富的宝座,至少从一项排名来看是这样。据美国有线电视新闻网网站12月7日报道,美国推特公司和特斯拉公司首……多少度的白酒可以消毒如何让白酒具有消毒作用消毒杀菌是我们居家必备功课,生活中很多地方会滋生很多细菌,或者携带有病毒。为了我们的生命安全,必须要勤消毒多杀菌。我们家里常见的白酒可以消毒吗。多少度的白酒可以消毒多少度……白醋熬煮消毒效果好吗喝醋能杀菌吗醋在我们日常生活中有很多妙用,它不仅可以作为调味品,还具有一定的清洁杀菌功效。那么,使用白醋消毒效果好吗,让我们一起来看看。白醋熬煮消毒效果好吗具有一定的好处。白醋……皮肤破了用什么消毒脸上长痘痘可以用酒精消毒吗日常生活中,我们难免会遇到皮肤擦上、破皮的现象。皮肤表面会滋生大量的细菌,如果不进行及时消毒可能会造成皮肤感染、腐烂。在这种情况下,我们可以使用什么消毒呢。皮肤破了用什么消毒……献血会影响月经吗?献血会导致月经推迟吗?献血是一件很有爱心的事情,一些女性选择在月经前后献血,会发现自己的月经出现推迟不调的现象,难道说献血会影响月经?献血对健康有影响吗捐献全血,一般一次是200400毫……芝麻搭配这些食材,好比吃补品肾气足精神好睡得香气色红润俗话说:十人九虚。很多人过了30岁,都会有这样的感觉:容易掉发、腰膝酸软、记忆力大不如从前、晚上睡不好、白天又困乏无力这可能是你肾气亏虚了!肾为先天之本、肾藏精,其华在发……软骨素是什么东西?高血脂必备软骨素很多人都听说过,但是从名字听不出它的功效,下面5号网的小编为你们介绍软骨素是什么东西?高血脂必备。软骨素是什么东西软骨素(chondroitin)一般指硫酸软骨素,……
便卜粒有副作用吗?据说没有便卜粒是一款可以减肥的保健品,出自日本,很多人都担心吃了有副作用,下面5号网的小编为你们介绍便卜粒有副作用吗?据说没有。便卜粒有副作用吗据介绍是没有副作用的,因为便卜在日……软骨素和钙片能一起吃吗?软骨素一般指硫酸软骨素,也被称为关节灵,主要的作用就是预防软骨损伤,并且进行一系列的修护的,对于关节痛,神经痛等等有效,和同样调节骨骼的钙片可以一起服用吗?软骨素和钙片能一起吃……狮王祛痘膏能去闭口吗?狮王祛痘膏能祛粉刺吗?日本的狮王祛痘膏是一款非常出名的产品,可以说是痘痘星人救星了,下面5号网的小编为你们介绍狮王祛痘膏能去闭口吗?狮王祛痘膏能祛粉刺吗?狮王祛痘膏能祛粉刺吗据说是可以治粉刺的……炸馓子蘸糖葫芦编凳子!日照河山大集上的手工造精彩无限齐鲁网闪电新闻1月11日讯大集大概是一座城市烟火气最为旺盛的地方,里面有柴米油盐酱醋茶、鸡鸭鱼肉瓜果蔬菜,也藏着很多老百姓对生活的希冀。在日照高新区河山大集上,穿过熙熙攘……易瑞沙香港多少钱一盒?易瑞沙香港价格易瑞沙在国内的价格是比较贵的,很多人都负担不起如此高昂的价格,据说香港会比较便宜,下面5号网的小编为你们介绍易瑞沙香港多少钱一盒?易瑞沙香港价格。易瑞沙香港多少钱一盒关于……三伏贴贴在什么位置?三伏贴贴哪里?很多人会选择自己购买三伏贴来贴,却不清楚到底该贴哪里,下面5号网的小编为你们介绍三伏贴贴在什么位置?三伏贴贴哪里?三伏贴贴在什么位置1天突穴位置:前胸颈部正中线上……健胃消食片上火吗?健胃消食片不上火但是最好别多吃健胃消食片上火这个说法是一直都有流传,那么这个说法是否可信呢,下面5号网的小编为你们介绍健胃消食片上火吗?健胃消食片不上火但是最好别多吃。健胃消食片上火吗健胃消食片也属家……诺基亚5g技术是什么?什么是5g技术人们谈起诺基亚都觉得他标志着一个时代的手机兴起到没落,在没有智能机的时代,诺基亚几乎占据了大半个市场。如今诺基亚又重新出发,开始研究起通讯技术,诺基亚5g技术是什么?什么是5g……早上醒来嘴巴苦是怎么回事?早上嘴巴苦是什么原因这是一个常识性的问题,相信很多人都遇到了小编一样的问题,有的时候早上起床发现嘴巴特别苦,不过也就维持一段时间,过一会就好了,所以很多人也没怎么在意,那么这到底是怎么回事呢?下面……木瓜没熟怎么把它放熟了?木瓜催熟的方法水果没成熟的话,吃起来口感极差,很多人问小编如果木瓜没熟应该怎么办呢?怎么把它放熟呢?催熟的方法有哪些呢?下面来为大家详细介绍下!木瓜没熟怎么把它放熟了1、放置木瓜催熟……王者荣耀攻略之武则天篇武则天,这个英雄可以说是王者荣耀里最强的女英雄了。在S17赛季,由于新版本的更新,武则天的强度得到了大幅提升。虽然现在出场率还不高,但一旦打上了热门阵容,她就会成为……准备怀孕可以贴三伏贴吗贴三伏贴对怀孕有影响吗正在备孕的女性是不建议贴三伏贴的,三伏贴中的药大多有活血的作用,对于备孕会有一定的影响,所以最近有备孕计划的朋友们就不要贴三伏贴啦。准备怀孕可以贴三伏贴吗不可以。女……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网