1.Elasticsearch简介Eladticsearch是一个基于Lucene库的搜索引擎。它提供了一个支持多用户的分布式全文搜索引擎。它使用HTTP接口对外提供服务。Elasticsearch是一个实时的分布式搜索分析引擎,作为全文检索、结构化搜索、分析的组合使用,这三个功能属于面向文档的数据库对象或_documents。Elasticsearch不仅存储文档,还会对每个文档的内容进行索引,以便检索。在Elasticsearch中,您索引、检索、排序和过滤文档——而不是行和列。搜索原理:倒排索引:倒排索引是一种索引方法,用于在全文搜索下存储一个词在一个文档或一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构(文档数据会被标准化)相关性排序:搜索词频率:搜索词在文档中出现的次数,出现次数越多,相关性越高反向文档频率:搜索词在整个文档中出现的频率。出现次数越多,相关性越低字段长度准则:长度越长,相关性越低集群节点(node):一个运行中的Elasticsearch实例称为一个节点。每个节点都知道任何文档的位置,可以向任何节点(包括主节点)发送请求,因此主节点不会成为集群的瓶颈主节点:当一个节点被选为主节点时,会负责管理所有集群范围的更改,例如添加或删除索引,或添加或删除节点。主节点不需要涉及文档级别的更改和搜索等操作。分片:分片是一个底层工作单元,它只保存所有数据的一部分。Elasticsearch使用分片在集群中分布数据。分片是数据的容器,文档存储在分片中,分片分配给集群中的每个节点。当您的集群向上或向下扩展时,Elasticsearch会自动在节点之间迁移分片,以便数据仍然均匀分布在集群中。Primaryshard:索引中的任何文档都属于一个primaryshard,所以primaryshard的数量(50G查询和写入性能更好)决定了最大可以保存的数据量。副本分片:副本分片是主分片的副本。复制分片作为冗余备份,在硬件故障时防止数据丢失,并为读取操作提供服务,如搜索和返回文档。primaryshards的数量在索引建立的时候就已经确定了,但是replicashards的数量可以随时修改。每个分片都是一个功能齐全的搜索引擎,可以使用节点上的所有资源。复制的分片越多,吞吐量就越高。#设置索引分片curl-XPUTIP:9200/libraryname-H'Content-Type:application/json'-d'{"settings":{"index":{"number_of_shards":3,"number_of_replicas":1}}}'#修改子分片数量PUTIP:9200/libraryname/_settings{"number_of_replicas":2}#查看IP:集群健康状态GET9200/_cluster/health2.ES单机部署1.配置网卡(无网环境忽略此条)vi/etc/sysconfig/network-scripts/ifcfg-*BOOTPROTO=static#改成静态网络,可以不修改ONBOOT=yessystemctlrestartnetwork2.配置本地yum源(网络环境忽略此条)mkdir/centos7#存储本地yum源mount/iso./tmp#挂载iso镜像到本地文件cp-vrf./tmp/*/centos7#挂载后复制本地文件到本地yum源文件cd/etc/yum.repos.dmv./CentOS-*/root/tmp#去掉yum到网络源信息viyum.repo#写入本地yum[centos7-yum]name="yum.local"baseurl=file:///centos7gpgcheck=0enabled=1yumcleanall#刷新缓存rm-rf/var/cache/yumyumlist#显示数据表示本地yum配置成功yuminstallnet-tools#安装net-tools,查看ifconfig注意:本地挂载镜像后,如果要使用该文件,必须先umount该文件,否则会报错,提示权限不够.3.关闭防火墙和selinuxsystemctldisablefirewalldsystemctlstopfirewalldvi/etc/sysconfig/selinuxSELINUX=disabledsetenforce0getenforce注意:安装docker时不需要关闭。es在集群部署时必须关闭,否则集群不会生效4.安装dockerscpdocker.ziproot@ip:~#无网手机copyunzipdocker.zipcddockershsetup_without_container-selinux-2.9#virtualmachine/entitymachine#服务器,直接联网安装,不要重复setup_without_container-selinux-2.9.sh脚本内容如下:#auto-mountyumcleanallyummakecacheyumremove-ydocker-enginemkdir-p/data/tmpchmod-R777/data/tmpmkdir-p/data/sys/var/dockerchmod-R777/data/sys/var/dockerln-s/data/sys/var/docker/var/lib/dockerln-sf/usr/share/zoneinfo/亚洲/上海/etc/localtimeecho"vm.max_map_count=655360">>/etc/sysctl.conf&&sysctl-pyuminstall-ynet-toolsuseradd-d/data/duser-mdurecho"duser:5VSDHai4"|chpasswdecho"duserALL=(ALL)NOPASSWD:ALL">>/etc/sudoersrpm-ivhcontainer-selinux-2.9-4.el7.noarch.rpmyuminstall-y./docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpmusermod-aGdockerduserrm-fr./*cd../rm-frdocker_installdocker_install.tar.gz注意:sh脚本可以根据具体情况修改。当安装失败提示rpm安装问题时,在rpm安装命令后加上--nodeps--force,表示可以不考虑分析包之间的依赖关系,安装成功。,开启docker服务systemctlstartdockersystemctlenabledockersystemctlstatusdockerdockerversion#查询是否开启docker六、安装java(部署es的依赖)java-version#查看是否有java,如果有则忽略后面步骤在本地安装javahttp://www.oracle.com/technet...七、读取镜像(根据实际情况)dockerload-iimage.tar#如果是zip镜像,先解压成tar文件dockerimages#启动容器并保存本地文件挂载目录到容器的data目录dockerrun-itd-p8888:8888-v/data/origin_file:/data/duser/patent_similaruty/data/origin_file--namepatent_preprocesspatent_preprocess:1.1bash#进入容器dockerexec-itpatent_preprocessbash#stopcontainerdockerstoppatent_preprocess8.如果需要docker-compose开始安装使用docker-compose方法一:使用curl命令下载curl-Lhttps://github.com/docker/compose/releases/download/1.24.0/docker-compose-Linux-x86_64-o/usr/local/bin/docker-composechmod+x/usr/local/bin/docker-compose方法二:使用pip命令下载yum-yinstallepel-releaseyum-yinstallpython-pippipinstalldocker-compose你学会废了吗?
