ElasticSearch的简单使用以及集群搭建

版权声明:@Author 犯罪嫌疑人卢某 洒家辛苦总结 希望尊重洒家的劳动哟 https://blog.csdn.net/unscdf117/article/details/80090786

ElasticSearch在现在的使用是越来越广泛了,全文检索适用的场景十分广泛.和ElasticSearch的设计理念相同的产品有很多,比如Apache开源的Solr,还有老毛子写的Sphinx等等.和Solr一样ElasticSearch也是基于Lucene的全文检索引擎.

Solr在索引频繁构建的场景下查询效率会直线下降,考虑到当前公司业务正在扩张,数据量不断变大同时线上服务不能停的情况下Solr可能并不适合当前的场景.而且ElasticSearch一边匹配查询一边创建索引时性能和一般时候基本没什么差别所以更加合适一些.并且,考虑到公司项目重构,架构层面对于日志系统建设的考量,ElasticSerach也更加适合..ES + Logstash + Kibana + Kafka的ELKK体系也要被提上日程,而我目前的项目中有全文检索的需求(虽然不是很明确,但是的确有这个愿景),而之前项目的开发人员采用的是从数据库中一次性查询相关的所有数据加载到浏览器内存当中,通过JS插件来进行的模糊匹配,这对于将来业务扩展之后数据库的压力以及数据量大之后浏览器的压力都是不太合适的,所以我先斩后奏用了ElasticSearch,并且起了一个微服务来专门处理搜索方面的事宜….(隐约感觉自己会被人打死)

ElasticSearch的基础知识满大街都有,也可以看官方文档或者专业书籍,我在此只是记录一下自己的一点认知和使用中的一些坑以免后人走冤枉路.

ElasticSearch的集群搭建,可以单机搭建集群或者多机器搭建集群.也可以混着来,例如我目前公司只能调拨一台服务器给我作为搜索服务的宿主机,决定不占用这个资源我自己搭个虚拟机试试,我准备搭建一个单机双ES的所谓的集群(不然会报黄色警告)..复制了两个ES到Linux上面..分别命名ES1 ES2 并且把两个ES的elasticsearch.yml文件中注释的一些
Network
Network打开,这是ES1的配置 很干脆就是IP地址和9200端口.ES2的端口号+1
.我偷了个懒,集群名称我就没设置,默认就是elasticsearch,node.name也没有设置..ES2的传输地址里面设置discovery.zen.ping.unicast.hosts:[“本机ip:9300”],统一了两个ES的传输地址和端口号.如果要部署大规模的集群 肯定还是需要系群名称节点名称的具体设置的..因为我这边公司尚处于初始阶段服务器资源比较紧张所以没能实现..(我的搜索微服务都写好了啊T_T)

最后就是启动..如果直接./elasticsearch去启动的话 那么控制台在运行一个ES的时候另一个是没法启动的,除非你CTRL+C但是这样当前的ES就被干掉了..最好的办法就是写一个Shell脚本 启动方式 -d 后台启动不会占据控制台..(话说我批量起ES,那怎么批量关闭ES呢..我没想好)

先写到这..等过段时间搜索服务正式上线之后,我再继续补充一些工作中遇到的问题..如果有ES基础不懂的或者某些概念不清楚的请自行学习ES基础部分..

猜你喜欢

转载自blog.csdn.net/unscdf117/article/details/80090786