• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:Elasticsearch搜索引擎简介及单机部署

python 搞代码 4年前 (2022-02-20) 42次浏览 已收录 0个评论
文章目录[隐藏]

​1. Elasticsearch简介

Eladticsearch是一个基于Lucene库的搜索引擎

他提供了一个分布式、反对多用户的全文搜索引擎,采纳的是HTTP接口的形式对外提供服务

Elasticsearch 是一个实时的分布式搜寻剖析引擎,它被用作全文检索、结构化搜寻、剖析以及这三个性能的组合

属于面向文档的数据库

  • Elasticsearch 是 _面向文档_ 的,意味着它存储整个对象或 _文档。Elasticsearch 不仅存储文档,而且 索引_每个文档的内容使之能够被检索。在 Elasticsearch 中,你 对文档进行索引、检索、排序和过滤–而不是对行列数据。

搜寻原理:

倒排索引:

  • 倒排索引是一种索引办法,被用来存储在全文搜寻下某个单词在文档或者一组文档中的存储地位的映射。它是文档检索系统中最罕用的数据结构(会对文档数据进行标准化解决)

相关性排序:

  • 检索词频率:检索词在该文档中呈现的次数,呈现次数越多,相关性越高
  • 反向文档频率:检索词在整个文档中呈现的频率,呈现次数越多相关性越低
  • 字段长度准则:长度越长,相关性越低

集群

  • 节点(node)
  • 一个运行中的Elasticsearch实例称为一个节点
  • 每个节点都晓得任意文档的所处地位,能够将申请发给任意一个节点(包含主节点),所以主节点不会成为不会成为集群的瓶颈
  • 主节点:当一个节点被选举成主节点时,它将负责管理集群范畴内所有变更,例如减少、删除索引,或者减少删除节点。而主节点并不需要波及到文档级别的变更和搜寻等操作。
  • 分片(shard)
  • 一个分片是一个底层的工作单元 它仅保留了 全副数据中的一部分。Elasticsearch 是利用分片将数据散发到集群内各处的。分片是数据的容器,文档保留在分片内,分片又被调配到集群内的各个节点里。当你的集群规模扩充或者放大时, Elasticsearch 会主动的在各节点中迁徙分片,使得数据依然均匀分布在集群里。
  • 主分片(primary shard):索引内的任意一个文档都属于一个主分片,所以主分片(按50G时查问和写入的性能较好)的数目决定着可能保留的最大数据量
  • 复制分片(replica shard):复制分片是主分片的拷贝。复制分片作为硬件故障时爱护数据不失落的冗余备份,并为搜寻和返回文档等读操作提供服务。
  • 在索引建设的时候就曾经确定了主分片数,然而正本分片数能够随时批改.
  • 每一个分片是一个性能残缺的搜索引擎,它能够应用一个节点上的所有资源的能力。复制分片越多,也将领有越高的吞吐量
# 设置索引的分片
curl -X PUT IP:9200/库名 -H 'Content-Type: application/json' -d'
{
   "settings" : {
        "index": {
            "number_of_shards" : 3,
            "number_of_replicas" : 1
        }
   }
}
'
# 批改副分片数量
PUT IP:9200/库名/_settings {"number_of_replicas" : 2}
# 查看集群衰弱状态
GET IP:9200/_cluster/health

2. ES的单机部署

一、配置网卡(无网环境疏忽此条)

vi /etc/sysconfig/network-scripts/ifcfg-*
 BOOTPROTO=static # 批改为动态网路,能够不批改
 ONBOOT=yes
systemctl restart network

二、配置本地yum源(有网环境疏忽此条)

mkdir /centos7  #寄存本地yum源
mount /iso  ./tmp  #将iso镜像挂载到本地文件中
cp -vrf ./tmp/* /centos7 #将挂载后到本地文件copy到本地yum源文件中
cd /etc/yum.repos.d  
mv ./CentOS-* /root/tmp #移除yum到网络源信息
vi yum.repo  #编写本地yum
 [centos7-yum]
 name="yum.local"
 baseurl=file:///centos7
 gpgcheck=0
 enabled=1
yum clean all  #刷新缓存
rm -rf /var/cache/yum
yum list  #显示数据则示意本地yum配置胜利
yum install net-tools #装置net-tools,查看ifconfig
留神:

本地挂载完镜像之后,如果还要应用该文件的话,必须先umount该文件,否则会报错,提醒权限不够

三、敞开防火墙及selinux

systemctl disable firewalld
systemctl stop firewalld
vi /etc/sysconfig/selinux
 SELINUX=disabled
setenforce 0
getenforce
留神:

装置docker时能够不必敞开,当es进行集群部署时,必须敞开,否则集群无奈失效

四、装置docker

scp docker.zip root@ip:~ #没网手动copy
unzip docker.zip
cd docker
sh setup_without_container-selinux-2.9 #虚拟机/实体机
# 服务器,间接联网装置,不赘述

setup_without_container-selinux-2.9.sh 脚本内容如下:

#auto-mount
yum clean all
yum makecache
yum remove -y docker-engine
mkdir -p /data/tmp
chmod -R 777 /data/tmp
mkdir -p /data/sys/var/docker
chmod -R 777 /data/sys/var/docker
ln -s /data/sys/var/docker /var/lib/docker
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "vm.max_map_count=655360" >> /etc/sysctl.conf && sysctl -p
yum install -y net-tools
useradd -d /data/duser -m duser
echo "duser:5VSDHai4" |chpasswd
echo "duser    ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
rpm -ivh container-selinux-2.9-4.el7.noarch.rpm
yum install -y ./docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm
usermod -aG docker duser
rm -fr ./*
cd ../
rm -fr docker_install docker_install.tar.gz
留神:

sh脚本能够依据具体情况进行批改

当呈现无奈装置胜利,且提醒rpm装置问题时,在rpm装置命令之后,加 —nodeps —force ,意思为不思考剖析包之间的依赖关系,即可装置胜利

五、开启docker服务

systemctl start docker
systemctl enable docker
systemctl status docker
docker version #查问是否开启docker

六、装置java(部署es 的依赖)

java -version #查看是否有java,如果有,疏忽当前步骤
本地装置java

 http://www.oracle.com/technet…

七、读取镜像(依据理论状况)

docker load -i image.tar #如果是zip的镜像,则先unziip成tar文件
docker images
# 启动容器,并且将本地的文件目录挂载至容器data目录下
docker run -itd -p 8888:8888 -v /data/origin_file:/data/duser/patent_similaruty/data/origin_file --name patent_preprocess patent_preprocess:1.1 bash
#进入容器
docker exec -it patent_preprocess bash
#进行容器
docker stop patent_preprocess

八、如果须要docker-compose启动

装置并应用docker-compose

办法一:

应用curl命令下载

curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

办法二:

应用pip命令下载

yum -y install epel-release
yum -y install python-pip
pip install docker-compose

你学废了吗?


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:Elasticsearch搜索引擎简介及单机部署

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址