正文
搜索或者全文的检索,在开发项目中扮演者非常重要的角色,虽然Mysql数据库给我们提供了全文搜索的技术,但是我们使用数据库做搜索、做检索响应比较慢,而且也影响我们整个系统的性能。今天,介绍一种比较流行的检索技术:ElasticSearch。
简介
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。
安装ES
1、第一步
环境准备:
1. 安装JDK环境:我们的ES需要JDK的环境支持(PS:最新版本的ES已经集成了一个openJdk,但是,我安装的版本是5.5.0,他是没有集成JDK的。)
2.下载ES软件:这里面有一个小技巧,下载的时候,可以运用某雷下载,感觉速度超快。下载地址:https://www.elastic.co/cn/downloads/elasticsearch 最新的版本是 7.8.0
2、第二步
配置系统其他的环境:第一次安装的时候,碰到了许多意想不到的事情,比如系统的配置问题以及版本的对应的问题许多许多,不过最后,还是配置成功啦。下面的所有动作均在root用户下配置:
1.新建用户
useradd elasticsearchpasswd elasticsearch 密码:elasticsearch
2.配置/etc/security/limits.conf,在最后位置加上:
* soft nofile 65536 * hard nofile 65536
3.配置/etc/sysctl.conf
vm.max_map_count=655360 #配置后执行 sysctl -psysctl -p
4.配置 /etc/security/limits.d/90-nproc.conf
修改 * soft nproc 1024 为 * soft nproc 4096
3、第三步
配置好后,我们登陆刚刚创建的用户
su elasticsearch
1. 配置JVM启动后参数:登陆后,上传我们下载好的软件,解压,之后进入config文件夹,配置JVM我们的启动参数。由于每一个系统内存都是不同的,所以,我们要修改启动参数里面的堆的大小。
2.配置elasticsearch.yml 文件
# 配置任何IP都可以访问 network.host: 0.0.0.0 # 如果发生下面的错误 再将加入下面的配置,我启动的时候没有遇到这样的错误 # [1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk bootstrap.memory_lock: false bootstrap.system_call_filter: false
4、启动软件
进入软件的bin目录,执行下面的命令:
./elasticsearch # 如果没有报错,那么我就配置对了 # 后台执行的模式 ./elasticsearch -d
5、浏览器访问或者用crul执行访问
{ name: "jtyF6Y4", cluster_name: "elasticsearch", cluster_uuid: "chnpkgldQ-yqyP7dc0eSQA", version: { number: "5.5.0", build_hash: "260387d", build_date: "2017-06-30T23:16:05.735Z", build_snapshot: false, lucene_version: "6.6.0" }, tagline: "You Know, for Search" }
返回上面的信息,就说明我们配置成功啦。