ES原理与应用

本文介绍了搜索引擎的基本概念和问题,如海量数据的检索难题,对比了传统方法和搜索引擎的优势。重点讲解了Elasticsearch(ES)作为一款基于Lucene的搜索框架,其分布式、高可用和实时搜索的特点,以及适用于海量数据场景的能力。同时,文章涵盖了ES的安装、配置、插件安装、集群搭建、字段属性和API操作,以及与其他工具如Logstash和Kibana的配合使用,展示了ES在日志搜索、数据聚合等方面的应用。
摘要由CSDN通过智能技术生成

1.搜索引擎知识和相关框架
    搜索目的:从海量数据中获取想要的信息

    传统做法
        1.文档中使用find功能
        2.mysql中使用like模糊查询
    问题
        1.海量数据不能及时响应。少量数据可以mysql建立索引解决
        2.一些无用测词不能进行过滤,没法进行分词
        3.数据量大的话难以拓展
        4.相同的数据难以进行相似度最高的进行排序

搜索引擎:
1。存储非结构化数据
2.快速检索和响应
3.进行相关性排序,过滤
4.可以去掉停用词(没有特殊含义的词,比如英文啊,is等,中文:这,的,是等)
  框架一般支持可以自定义的停用词

常用框架:
1.Lucene
  Apiche的开源项目,高性能,可拓展的工具库,提供搜索的基本框架;
  如果开发人员需要使用,需自己开发,成本大,但是性能高
2.solr
  solr是基于lucene的全文搜索框架,提供了比lucene更为丰富的功能,
  同时实现了可配置,可拓展且对查询性能进行了优化
  建立索引时,搜索效率下降,实时索引搜索效率不高
  数据量的增加,solr的搜索效率会变得更低,适合小数据量的搜索


3.elasticsearch
  基于lucene的搜索框架,它提供了一个分布式的多用户能力的全文搜索引擎,
  基于RESTful web接口,上手容易,拓展节点方便,可用于存储和检索海量的数据,接近实时搜索,海量数据增加,搜索响应的性能几乎不受影响;
  分布式搜索矿建,自动发现节点,副本机制,保障高可用性

#########################ES特性
ElasticSearch是一个基于Lucene的搜索服务器,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
作用:  存储数据时有序存储
    数据和索引分类
    压缩数据
1.特点:全文检索,结构化检索,数据统计,分析,接近实时检索,分布式搜索(可部署数百甚至更多的服务器)
    处理PB级别数据,搜索纠错,自动完成(提示)
2.使用场景:日志搜索,数据聚合,数据监控,报表统计分析

#####################ES目录和配置文件
bin:启动文件
log:日志文件,=>运行日志,慢查询日志
config:核心配置文件
lib:依赖包
plugins:插件


#################字段属性
字符串:字符串有keyword 和 text两种类型,keyword是建立精确索引的字符串,text是建立分词索引的字符串。
ip类型:ip
数字类型:short,integer,long

###############单点安装ES
下载安装包,解压,执行./bin/elasticsearch运行
访问9200端口验证安装


#####################head插件安装
进入github.com网站搜索elasticsearch-head复制下载链接
wget link下载
解压
安装node.js=>下载安装,见https://www.cnblogs.com/liuqi/p/6483317.html
更改elasticsearch配置文件vim ./config/elasticsearch.yml,添加http.cors.enabled: true 和http.cors.allow-origin: "*"
后天启动elasticsearch,./bin/elasticsearch -d,启动head插件npm run start,访问9100端口

#########################elasticsearch 集群安装
更改master 节点elasticsearch配置文件vim ./config/elasticsearch.yml,添加http.cors.enabled: true 和http.cors.allow-origin: "*"
cluster.name: ZW
node.name: master
node.master: true

network.host: 127.0.0.1
##############################
更改ES slaver2节点elasticsearch.yml的配置
cluster.name: ZW
node.name: slave1
network.host: 127.0.0.1
http.port: 8200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
#######################
更改ES slaver2节点elasticsearch.yml的配置
cluster.name: ZW
node.name: slave2
network.host: 127.0.0.1
http.port: 7200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

######################logstash
Logstash是一个接收,处理,转发日志的工具.Logstash在ELK日志系统中担任搬运工的角色,它为数据存储,报表查询和日志解析创建了一个功能强大的管道链。

Logstash提供了多种多样的 input,filters,codecs和output组件


###########ES概念
索引:含有相同属性的文档集合(database)必须是英文字母小写且不含下划线

类型:索引可以定义一个和多个类型,文档必须属于一个类型(table)

文档:是可以被索引的基本数据单位(row)

分片:每个索引都有多个分片,每个分片都是一个lucene索引,分片只能在创建索引的时候指定,不可以动态修改
      数据量大,没有足够的硬盘空间,且一次搜索这么大的数据,响应速度更不上es,可以提高吞吐方便拓展
备份ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仔仔1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值