Elasticsearch第一天学习笔记

Elasticsearch

1. RestFul 引言

REST:表现层状态转化(Representational State Transfer),如果一个架构符合REST原则,就称它为RESTFul架构风格。

全称为:资源的表现层状态转化(Resource Representational State Transfer)。

资源(Resource):把网络中一切事物统称为资源,网络上的一个实体或者一个具体信息,每一个资源都存在一个唯一的资源标识符URL。

表现层(Representational ):将资源具体呈现出来的形式,称之为表现层。

状态转化(State Transfer):客户端通过操作服务器中的资源,使资源发生某种状态转变,如CRUD。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

原则:

  1. 使用Rest的URL替换传统的URL:

    传统URL:http://localhost:8080/项目名/user/findOne?id=21

    RestUrl:http://localhost:8080/项目名/user/findOne/21/

  2. 四种动词对应服务端四种操作(CRUD增删改查):

    提出四种心的请求动词:GET(查询)、POST(更新)、PUT(添加)、DELETE(删除)。

REST原则就是指一个URL代表一个唯一资源,并且通过HTTP协议里面四个动词:GET、POST、PUT、DELETE对应四种服务器端的基本操作: GET用来获取资源,POST用来添加资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

2. REST 设计原则

  1. 使用restURL替换传统URL,参数作为URL整体。
  2. 使用四种http动词(请求方式)对应服务器端四种操作:
    @GetMapping
    @PostMapping
    @PutMapping
    @DeleteMapping
  3. 通常服务返回数据都是JSON格式或者XML格式。

SpringMVC和SpringBoot基于REST设计原则,提供新的注解@RestController,这个注解标识当前服务是基于RestFul的架构风格,是@ResponseBody+@Controller的组合。

3. 什么是全文检索

全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。

全文检索以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标。

关于全文检索,我们要知道:

  1. 只处理文本。
  2. 不处理语义。
  3. 搜索时英文不区分大小写。
  4. 结果列表有相关度排序。

4. 什么是Elasticsearch

ElasticSearch简称ES,是基于Apache Lucene构建的开源搜索引擎,是当前流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源搜索引擎工具包,但是Lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际的应用中去。但是ES是采用Java语言编写,提供了简单易用的RestFule API,开发者可以使用其简单的RestFul API,开发相关的搜索功能,从而避免Lucene的复杂性。

5. ES 的应用场景

ES主要以轻量级JSON作为数据存储格式,这点与MongoDB有点类似,但它在读写性能上优于MongoDB。同时也支持地理位置查询,还方便地理位置和文本混合查询。以及在统计、日志类数据存储和分析、可视化这方面是引领着。

  • 国外:
    Wikipedia(维基百科)使用ES提供全文搜索并高亮关键字、StackOverflow(IT问答网站)结合全文搜索与地理位置查询、Github使用ES检索1300忆行的代码。

  • 国内:
    百度在云分析、网盟、预测、文库、钱包、风控等业务上都应用了ES,单集群每天导入30TB+数据、新浪、阿里巴巴、腾讯等公司均有对ES的使用。

6. ES 的安装

6.1 环境准备
安装前必须安装JDK且配置环境变量。

在这里插入图片描述

6.2 安装ES服务
  1. ES不能以root用户身份启动,必须创建普通用户。

    groupadd es
    useradd whk -g es
    passwd es
    
  2. 使用普通用户登录并上传ES安装包。

  3. 解压缩Elasticsearch:

    tar -zxvf 安装包
    
  4. 进入bin目录启动ES服务:

    ./elasticsearch
    
  5. 执行如下命令测试客户端操作:

    curl http://localhost:9200
    

在这里插入图片描述

6.3 开启远程连接权限

ES服务默认启动是受保护的,只允许本地客户端连接,如果想要通过远程客户端访问,必须开启远程连接。

  1. 开启ES远程访问,修改network为以下配置:

    vim elasticsearch.yml
    

    在这里插入图片描述

  2. 重启ES服务:

    [whk@localhost bin]$ ./elasticsearch
    
  3. 重启服务后出现如下错误:

    在这里插入图片描述

  4. 解决错误[1],使用root用户修改系统配置,在最后加入如下配置:

    vim /etc/security/limits.conf
    

    在这里插入图片描述

  5. 重新登录后检测配置是否生效:

    ulimit -Hn
    	ulimit -Sn
    	ulimit -Hu
    	ulimit -Su
    

在这里插入图片描述

  1. 解决错误[2],使用root用户修改系统配置:

    vim /etc/security/limits.d/20-nproc.conf
    

在这里插入图片描述

  1. 解决错误[3],使用root用户修改系统配置,在最后加入:

    vim /etc/sysctl.conf
    

    在这里插入图片描述

  2. 执行如下命令检测是否生效:

    sysctl -p
    
  3. 退出重新登录之后重启ES服务:

    [whk@localhost bin]$ ./elasticsearch
    
  4. 通过浏览器访问ES服务:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值