首页 > 其他 > 详细

1.ElasticSearch(一)

时间:2020-12-27 16:21:40      阅读:21      评论:0      收藏:0      [点我收藏+]

1.什么是RestFul?

因为ElasticSearch中全部遵循RestFul风格,先来说说什么是RestFuk风格

  • RestFul
    • RestFul是一种软件架构风格
    • 一个架构的设计如果遵循Rest原则,那么就称这个架构为RestFul风格
  • Rest
    • 全称:资源表现层状态转化(Resource Representational State Transfer), 设计原则,设计约束,设计思路,设计约定....
    • 资源(Resource):把网络中的一切事物统称为资源,每一个资源都存在一个唯一的资源标识符(URL),比如一首歌,一张图片,静态页面,数据库记录...
    • 表现层(Representational):把资源具体呈现出来的形式称为表现层
    • 状态转化(State Transfer):当资源以某种表现形式展现出来的时候,客户端通过操作该资源使资源发生某种变化称为状态妆化

当资源在网络中展现出来的时候,我们都需要在网络中去定位他,定位这个资源就需要一个唯一的资源定位符,这个定位符就是URL;所以上面也说到了可以把网络中的一切称为资源


2.什么是全文检索

全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。
检索: 索(建立索引) 检:(检索索引)
全文检索(Full-Text Retrieval(检索))以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标。
关于全文检索,我们要知道:
1. 只处理文本。
2. 不处理语义。处理语义就要上升到人工智能了
3. 搜索时英文不区分大小写。
4. 结果列表有相关度排序。

3. 什么是Elastic Search

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

4. ES的诞生

多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene。
直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做“Compass”。
后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch。
第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用。
Shay的妻子依旧等待着她的食谱搜索……

官网:https://www.elastic.co/cn/

5. ES的应用场景

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

  • 国外:
    Wikipedia(维基百科)使用ES提供全文搜索并高亮关键字、StackOverflow(IT问答网站)结合全文搜索与地理位置查询、Github使用Elasticsearch检索1300亿行的代码。
  • 国内:
    百度(在云分析、网盟、预测、文库、钱包、风控等业务上都应用了ES,单集群每天导入30TB+数据, 总共每天60TB+)、新浪 、阿里巴巴、腾讯等公司均有对ES的使用。
    使用比较广泛的平台ELK(ElasticSearch, Logstash, Kibana)。

6. ES的安装

6.1 准备环境

# 0.安装前准备
- centos7 +
- java 8  +
- elastic 6.8.0+

# 1.在官方网站下载ES
- wget http://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.tar.gz

# 2.安装JDK(必须JDK1.8+)
- rpm -ivh jdk-8u181-linux-x64.rpm
	/*注意:默认安装位置 /usr/java/jdk1.8.0_171-amd64*/

# 3.配置环境变量
- vim /etc/profile
	在文件末尾加入:
	export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
	export PATH=$PATH:$JAVA_HOME/bin

# 4.重载系统配置
- source /etc/profile

未完,持续更新...

1.ElasticSearch(一)

原文:https://www.cnblogs.com/cdlszl/p/14197378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!