传统的spring mvc项目中使用elasticsearch

本文探讨了在传统的Spring MVC项目中引入Elasticsearch的原因,以及如何进行集成。通过集成,项目可以利用Elasticsearch的强大搜索和分析能力,提升数据检索效率。
摘要由CSDN通过智能技术生成

一、为什么使用elasticsearch?

互联网项目中一般使用mysql数据库, 因为它比oracle便宜。一些查询往往要模糊查询某些字段,如根据会员名称、会员手机号码及其他字段模糊查询某些会员列表。尽管将数据库进行读写分离,分为主库和读库,然后将这种模糊查询语句写到单独的工程中,该工程单独使用读库的数据库连接池,但仍然不能解决模糊查询带来的性能开销,mysql中like查询是比较耗性能的。
elasticsearch的优势:
支持模糊查询,而且性能比较高。
支持分页查询,性能还是很好。
支持大数据,将某张或某一类大表的数据同步到elasticsearch中,从elasticsearch中查询比从mysql中查询快很多倍,尤其数据量很大的表。
支持分布式:elasticsearch可以自动将海量数据分散到多台服务上去存储和检索海量数据的处理。
支持高并发,同时一些列表查询从elasticsearch中查询后减轻了mysql的负担。
个人认为:比mysql或oracle等关系型数据库最大的优势就是模糊查询性能高,关系型数据库like查询前后%是走不了索引的,但是实际环境中用户需要模糊查询。
二、基本感念理解
在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统关系型数据库:
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
索引相当于数据库,类型相当于表,文档相当于行,字段(Fields)相当于表的列(字段)。
三、linux下的安装
理解esearch最好的方式是去运行它。
安装esearch唯一的要求是安装Java,地址: www.java.com
安装jdk 8。
下载最新版本的esearch。我目前下载的是elasticsearch-6.4.0.tar.gz 。
下载后,将其上传到linux服务器,然后解压: tar -zxvf elasticsearch-6.4.0.tar.gz 。
进入解压后的目录,默认不能以root权限运行Elasticsearch。最好的方式是:
1、创建用户组和用户:
groupadd esgroup
useradd esuser -g esgroup -p esuser
chown -R esuser:esgroup elasticsearch-6.4.0
elasticsearch-6.3.0/bin/elasticsearch
修改config/elasticsearch.yml:
network.host: 0.0.0.0 --> 绑定网络地址,便于外网能够访问

 
查看端口:
netstat -aon|grep 9200
su esuser --》切换用户:
试着运行:
./bin/elasticsearch
如果想在后台以守护进程模式运行,添加 -d 参数。
在没有修改相关配置的情况下,启动会报一系列错误:
ERROR: [4] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [esuser] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
解决方法:
su root
1、vim /etc/security/limits.conf,增加配置:
esuser soft nofile 819200
esuser hard nofile 819200
su esuser --》切换用户
2、
vim /etc/security/limits.d/90-nproc.conf
修改
* soft nproc 1024
为:
* soft nproc 4096
3、vim /etc/sysctl.conf,增加配置:
vm.max_map_count = 655360
保存退出后,执行: sysctl -p
4、vim elasticsearch.yml
在Memory下面增加:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
另外:
在内存比较小的服务器(如开发服务器)上运行要先修改jvm的内存大小:
vi ./config/jvm.options
将22和23行的栈堆大小改为1024M:
-Xms1024M -Xmx1024M
启动后查看elasticsearch进程:
ps aux|grep elasticsearch

查看本地9200 http端口能否访问
curl 127.0.0.1:9200

 
浏览器地址栏输入服务器es访问url:
http://x.x.x.x:9200/
能访问证明外网能访问到。
四、简单使用:
1、建立索引
我们通过postman工具,发送put请求到es服务器,建立crm_index索引:
put http://x.x.x.x
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值