使用ElasticSearch进行全文检索(1)——ES安装与配置

为什么用ElasticSearch?

象网PMP小程序需要给学员提供搜题库的功能,可以在提干、选项、解析里搜索关键词,未来还要在几乎所有文档中进行全文搜索,基于MySql数据库做全文搜索需要对每个被搜索的字段进行改造,而且MySql作为关系型数据库,处理文本类型数据效率也不高。

ElasticSearch是基于Lucene的搜索服务器,提供全文搜索引擎,基于RESTful web接口,直接返回JSON格式的数据,非常适合远程调用。

以前用过Lucene,必须用Java调用,且编程复杂,Elasticsearch虽然是用Java语言开发的,但对Lucene原有接口进行了大规模简化,可直接用Python调用,非常方便。

安装新版本Elasticsearch

我安装的是linux版,windows上怎么安装使用就别往下看了,我也没用过。
官网www.elastic.co下载最新版本,有多项产品,别下错了,我下载的是7.5.0版本。文件是 elasticsearch-7.5.0-linux-x86_64.tar.gz
解压

tar -xvf elasticsearch-7.5.0-linux-x86_64.tar.gz

elasticsearch启动非常简单,但是不允许使用root用户启动,所以要添加用户(用户名为elasticsearch)、设置密码、把刚才解压出来的elasticsearch-7.5.0目录权限赋给该用户、切换到新用户

adduser elasticsearch
passwd elasticsearch
chown -R elasticsearch:elasticsearch elasticsearch-7.5.0 
su elasticsearch

为避免报错,需要修改一下配置文件

sudo vim /etc/sysctl.conf 

添加一行 vm.max_map_count=655360
执行

sysctl -p

好了,进入elasticsearch-7.5.0 目录,启动吧

./bin/elasticsearch

等等,这是前台运行,如果要后台运行,后面加参数-d

./bin/elasticsearch -d  

关闭进程 ,先用ps命令找到进程号,然后kill掉,kill后要再查找一次啊,杀不干净的话下次启动报错

ps  -aux | grep  elastic
kill -9 进程号

注意事项

如果需要从其他服务器或外网调用elasticsearch,需要修改配置elasticsearch配置文件

vim elasticsearch-7.5.0/config/elasticsearch.yml

把network.host那行的注释去掉
改为 network.host: 0.0.0.0
放开 node.name: node-1
加入一行 cluster.initial_master_nodes: ["node-1"]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。