专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

上穷碧落下凡尘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没有事务,而且是查询是近实时,写入速度很慢,只是读取数据快,成本也比数据库高,几乎就在靠吃内存提高性能,它目前只是作为搜索引擎的存在,如果你的业务涉及全文检索,那么它就是你的首选方案之一。

国乒大满贯打出110惹争议!球迷质疑为何不让球,马龙搬出刘国梁国乒大满贯打出110惹争议!球迷质疑为何不让球,马龙搬出刘国梁。2022年成都团体世乒赛男团18决赛,国乒男队迎战印度男队,此役,国乒派出了樊振东,马龙,王楚钦,比赛没有太大的悬念前国足助教急病去世!广州队双语悼念,尤文称伟大热刺取消发布会相信很多球迷都收到了一则沉痛的消息,著名体能教练吉安皮耶罗温特罗尼急病去世。值得一提的就是,他曾经效力过广州队热刺和尤文图斯等俱乐部,还协助卡纳瓦罗执教中国男足出战2019中国杯。豪门悲情夜!英超第一连胜,曼联逆转C罗空门不进,罗马惨遭绝杀北京时间10月7日凌晨,欧联杯小组赛第三轮全面打响,曼联,阿森纳和罗马三大欧陆豪强纷纷登场亮相。曼联和阿森纳两支英超豪强分别取得小组赛两连胜,反观穆帅执教的罗马,在奥林匹克球场12国乒32淘汰中国香港今天10月6日,成都世乒赛国乒男队迎来一场18决赛的比拼,中国队VS印度,结果国乒派出最强阵容出战,30完胜对手,第二盘马龙还轰出110的比分,又是光速下班。第一盘樊振东30哈梅特回避退市风险,抓住摘帽机会,ST股数据分享本人喜欢炒ST股,在ST股上的操作量大约占总量的三分之一。为什么胆子这么大?一是了解规则,二是数据在手,心中不慌。现在就与大家分享一下最近整理出来的ST股数据,希望对喜欢炒ST股的身体近期总出现7个异常,多半是脂肪肝来临的信号,别不当回事脂肪肝属于一种非常多见的肝脏病理性改变,在中国,脂肪肝的发病人群达到了25以上。一旦患病,在患者的肝细胞当中会堆积过多脂肪,使肝脏的正常结构和功能受到影响。而如果没有及早治疗与调理WTO预计明年全球贸易大幅放缓,衰退风险加剧世界贸易组织(WTO)在周三发布的一份报告中指出,2023年全球商品贸易的放缓幅度将远远高于此前预期,这一趋势或缓解通胀压力,但同时加大全球衰退风险。这家总部位于瑞士日内瓦的联合国大家都被8小时睡眠论骗了?60岁后,最佳睡眠时间应是多久?导语不知道昨晚的你睡得好吗?在现如今这个深秋季节正是需要充足睡眠以及增加睡眠深度的时间段。秋冬万物,收敛闭藏,保持充足规律的睡眠有助于阳气潜藏,阴精蓄积。若是说一天当中晚上是冬,那吃一次等于吃8块橡皮泥,很多家长还在喂,医生孩子怎能发育?对孩子来说,身体发育的快速期需要大量的能量支持,而这些能量都是靠饮食得来的,吃进去的食物必须通过脾胃才能运输转化成身体可以利用的营养,如果小孩子的脾胃发育得不好,孩子的抵抗力就会下宝贝女儿9岁半来例假,医生可能成年后身高不足150cm妈妈怎么也想不通,宝贝女儿萌萌才9岁半怎么就来例假了?!心急如焚的萌萌妈妈带着萌萌来到门诊,我了解到,萌萌爸爸身高168cm,妈妈身高158cm,父母对于自己的身高都不太满意,所以夜读感恩生命中的每一天珍惜每一次遇见,善待每一份情缘。走过岁月的山山水水,静观世间百态,笑看天下风云。山一程水一程地奔赴,只为能在有生之年,找到一个灵魂相通的人,携手相伴,栉风沐雨,一路前行。人生不是赛
高血压晚上喝白开水对自己有什么好处?高血压晚上其实不建议喝水,或者说一定要少喝水,否则不仅会影响睡眠,还会对肾脏造成影响,而高血压患者本身就有肾脏疾病的并发症,而如果睡眠不好,反而会影响高血压的控制,所以其实建议晚上腌菜多长时间吃合适?腌菜是农村经常会腌制的,但要腌多长时间可吃,这就要看是腌什么菜。一般白菜半个月就可食用,因为白菜比较嫩不需要很长时间,如果是腌萝卜最少要一个月左右才能食用。因为萝卜比较硬腌制时间要杨梅酒泡多长时间可以喝?泡酒的杨梅要不要洗?我家居住的地方离我们这里的果蔬批发市场不远,每年杨梅的上市的时候,果蔬批发市场里都有大量来自南方的杨梅出售。杨梅做为浆果,它的保质期都比较短,长途运输的虽然加冰了!但是如果当天早上27个月幼儿特别闹人,父母常扇嘴巴,之后各种补偿,你怎么看?才两岁多点的孩子,既不会分辩对错,也不太会理解大道理,任性耍赖是难免的。哄不住时唬一唬吧,啪啪屁股就可以,扇嘴巴不好。不是有句话打人不打脸吗。虽说还是个孩子,但这会使孩子的自尊心受如果巩俐饰演甄嬛传中的华妃,谁能和她对戏不落下风?随便一个演员都可以和她对戏不落下风除了蒋欣再无华妃首先,巩俐未必适合饰演华妃这个角色。她给人的感觉太强势了,气场很大。她演华妃,那谁演皇后啊!蔡少芬的气场,可能会被她轻易压下去。大远古时期有哪些巨兽?雷克斯海史前世界远古海洋生物秀18世纪末,一种未知动物化石在荷兰出土。它既像鳄鱼又像鲸,科学家发现这块化石与当时任何已知活物都不同。面对种种疑问,一位解剖学家给出了惊人答案。古生代魔兽世界怀旧服部落方,急救练到了225在落锤镇,外科医生那接不到任务,怎么回事啊?部落的急救到了150以后可以到尘泥沼泽学习,可以在尘泥沼泽的厥墙村里买书学到225(中级上限到225,有魔纹绷带,厚魔纹绷带),当你的急救到了225后,级别也达到了35级,则可以到13号山东泰山队能否战胜河北队,迎来中超第二阶段比赛开门红?以目前山东泰山队的实力赢河北队应该不是问题吧,如果不能赢下河北队,那今年的双冠王就不好说了,河北队的实力一般,又没有太出色的外援,所以一定必须要赢下河北队,千万不能大意了。可以说这为何智能手机淘汰不了手表?很多人戴手表是用来装的,现在大部分场合手表已经被手机代替了,你看看去大街上没有几个人戴手表了。传统的手表只是很多人用来凸显自己的地位而已。根本就是两种不同的物质。手机就是手机,手表助听器戴了6年了,最近听的不是很好,需要重新买吗?你好助听器戴了6年了,最近听的不是很好,需要重新买吗?一般助听器使用寿命58年,6年助听器的性能肯定有所下降,是可以更换一个助听器了,不过还是要复查听力试听一下新产品。希望我的回答请问我的服务器带宽只有1M,网站图片多,使用cdn静态加速服务能提高网站并发访问的速度吗?可以,第一次访问会从你的服务器取,在缓存周期内cdn会直接下发。注意设置恰当缓存时间,注意cdn费用。如果只是静态资源,你把这些数据再cdn预热且在cdn上开启数据压缩,理论上并发
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网