ElasticSearch

引言

1.在海量数据中执行搜索功能时,如果使用MySQL, 效率太低。

2.如果关键字输入的不准确,一样可以搜索到想要的数据。

3.将搜索关键字,以红色的字体展示。

介绍:

es是一个使用java语言并且基于Lucene编写的搜索引擎框架,提供了分布式的全文搜索功能,提供了一个统一的基于restful风格的web接口。

  • haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎。
  • whoosh:纯Python编写的全文搜索引擎,虽然性能比不上sphinx、xapian、Elasticsearc等,但是无二进制包,程序不会莫名其妙的崩溃,对于小型的站点,whoosh已经足够使用,点击查看whoosh文档。
  • jieba:一款免费的中文分词包,如果觉得不好用可以使用一些收费产品。

分布式:突出横向扩展能力。

全文检索:将一段词语进行分词,并且将分出的单个词语统一的放到一个分词库中,在搜索时,根据关键字去分词库中检索,找到匹配内容。(倒排索引)

端口:9200

倒排索引

1.将存放的数据,以一定的方式进行分词,并且将分词的数据存放到一个单独的分词库中

2.当用户去查询数据时,会将用户的查询关键字进行分词

3.然后去分词库中匹配内容,最终得到数据的id标识

4.根据id标识去存放数据的位置拉取到指定的数据

不会直接去存放数据的数据库检索而是先去分词库去检索,再返回数据库的数据

1.es服务中可以创建多个索引。

2.es服务每一个索引默认有5个分片。

3.每一个分片都会存在至少一个备份分片。

4.从分片默认是不会帮助检索数据,当es检索压力特别大时,备份分片才会帮助检索数据。

5.备份的分片必须放在不同的服务器中。

分片可以提高检索效率,分片1会备份分片2中的数据,防止分片2挂掉

kibana

kibana端口:5601

查看索引的文档信息

1.配置索引,点击进行下一步
2.点击Discover,进行查看

##启动es和kibana

cd /Users/yutang/docker_es
docker-compose up

1.索引基本操作

1.1 创建一个索引

#创建一个person索引
PUT /person
{
"settings": {
"number_of_shards": 5, //分片数
"number_of_replicas": 1 //备份数
}
}

1.2 查看索引信息

#查看索引
GET /person

1.3 删除索引

#删除索引
DELETE /person

1.4 ES中Field可以指定的类型

官网地址核心数据类型地址:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/mapping-types.html

字符串String:
text:一般用于全文检索。将当前的field进行分词
keyword: 当前的Field不可被分词
数值类型Numeric:
long,
integer,
short,
byte,
double,
float,
half_float,
scaled_float
时间类型Data:
date,可以指定具体的格式
布尔类型Boolean:
boolean
二进制类型Binary:
binary
范围类型Range:
integer_range, float_range, long_range, double_range, date_range
经纬度类型:
geo_point:用来存储经纬度
ip类型:
ip:可以存储ipv4或者ipv6

1.5 创建索引并指定数据结构

以创建小说为例子

PUT /book
{
"settings": {
//备份数
"number_of_replicas": 1,
//分片数
"number_of_shards": 5
},
//指定具体的数据结构
"mappings": {
//指定类型 Type
"novel": {
//文件存储的Field属性名
"properties": {
"name": {
"type": "text",
//指定分词器的名称
"analyzer": "ik_max_word",
//指定当前的Field可以作为查询的条件,默认是true
"index": true
},
"authoor": {
"type": "keyword"
},
// 字数
"count": {
"type": "long"
},
"onSale": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
},
"descr": {
"type": "text"
}
}
}
}
}

1.6 文档的操作

文档在ES服务中的唯一标志,_index, _type, _id 三个内容为组合,来锁定一个文档,操作抑或是修改

PUT要指定id,不然会失败;POST则不用

1.6.1 新建文档

  • 自动生成id
POST /book/novel
{
"name": "西游记",
"authoor": "刘明",
"onSale": "2020-12-11",
"count": 100000,
"descr": "哈哈哈哈哈哈"
}
  • 手动指定ID(更推荐)
PUT /book/novel/1
{
"name": "三国演义",
"authoor": "小明",
"onSale": "2020-12-11",
"count": 100000,
"descr": "哈哈哈哈哈哈"
}

1.6.2 修改文档

  • 覆盖式修改

# 直接覆盖id为1的数据
PUT /book/novel/1
{
"name": "三国演义",
"authoor": "小明",
"onsale": "2020-12-11"
}
  • doc修改方式(更推荐)
POST /book/novel/1/_update
{
"doc": {
"name": "极品家丁"
}
}
#先锁定文档,_update 修改需要的字段即可

1.6.3 删除文档

  • 删库

DELETE /book/novel/1

1.6.4 查询结果过滤

_source 过滤显示指定字段

POST /book/novel/_search
{
"query": {
"match_all": {}
},
"_source": ["name", "authoor"]
}

1.6.5 排序

sort 按照指定顺序返回,此时的_score是nul

POST /book/novel/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"count": {
"order": "desc" //降序
}
}
]
}
 

ElasticSearch介绍和基本用法(一)的更多相关文章

  1. 1.ElasticSearch介绍及基本概念

    一.ElasticSearch介绍 一个采用RESTful API标准的高扩展性的和高可用性的实时性分析的全文搜索工具 基于Lucene[开源的搜索引擎框架]构建 ElasticSearch是一个面向 ...

  2. elasticsearch介绍,安装,安装错误解决及相应插件安装

    一.elasticsearch介绍 1.简介(使用的是nosql,更新比mongodb慢): ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎, ...

  3. 【SpringBoot】搜索框架ElasticSearch介绍和整合SpringBoot

    ========================12章 搜索框架ElasticSearch介绍和整合SpringBoot ============================= 加入小D课堂技术交 ...

  4. Elasticsearch介绍及安装部署

    本节内容: Elasticsearch介绍 Elasticsearch集群安装部署 Elasticsearch优化 安装插件:中文分词器ik 一.Elasticsearch介绍 Elasticsear ...

  5. 批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用

    一.分布式ELK平台 ELK的介绍: ELK 是什么? Sina.饿了么.携程.华为.美团.freewheel.畅捷通 .新浪微博.大讲台.魅族.IBM...... 这些公司都在使用 ELK!ELK! ...

  6. Elasticsearch介绍和安装与使用

    转载:https://blog.csdn.net/weixin_42633131/article/details/82902812 1.Elasticsearch介绍和安装 1.1.简介1.1.1.E ...

  7. Elasticsearch介绍和安装

    Elasticsearch介绍和安装 软件包: 链接:https://pan.baidu.com/s/1O_C0JQGfF8sC_OtcCCLNoQ 提取码:3iai 1.1.简介 1.1.1.Ela ...

  8. ElasticSearch的基本原理与用法

    一.简介 ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式 ...

  9. ElasticSearch入门2: 基本用法

    基本用法:  一.索引创建 (启动集群和索引请看上一篇文章:http://www.cnblogs.com/liuxiaoming123/p/8081883.html) 1.打开浏览器,输入请求:htt ...

随机推荐

  1. rhel修改系统语言

    修改系统语言的三种方式  1.yum install system-config-language //挂载本地源,然后安装         system-config-language     2. ...

  2. Min_25 筛与杜教筛

    杜教筛 \(\) 是 \(\) 的前缀和,\(\), \(\) 同理. 假设 \( × = ℎ\) ,并且 \(, \) 易求出,\(\) 难求出. 那么 \[H () = \sum_{ \cdot ...

  3. 大家好,我是UCMP云管家,这是我的自我介绍

    随着云计算的不断普及,构建在计算.存储.网络.数据库等基础资源之上的云平台逐渐大行其道:而随着多种云平台技术路线的发展成熟,多个云厂商的云平台开始出现在企业IT市场.对于企业而言,为满足成本.按需.隐 ...

  4. CSS 浮动 (二)

    CSS 浮动 本人是一名大二学生,欢迎大家进行交流 V15774135883 推荐一个是自学的网站 里面有超多培训机构的大课,地址 有需要可以加我免费拿! 传统网页布局的三种方式 网页布局的本质--用 ...

  5. 使用Win自带的远程工具连接Linux

    网上教程一大堆,我这边只简单记录一下,主要是黑屏问题,和剪贴板问题.Win连接Linux,一般都是使用的xrdp, 如果是使用的旧版本的Ubuntu,建议先装一下xfce桌面,gnome桌面一般连不起 ...

  6. Note -「模拟退火」

    随机化算法属于省选芝士体系 0x01 前置芝士 你只需要会 rand 就可以啦! 当然如果你想理解的更透彻也可以先看看 爬山算法 0x02 关于退火 退火是一种金属热处理工艺,指的是将金属缓慢加热到一 ...

  7. OGC WebGIS 常用服务标准(WMS/WMTS/TMS/WFS)速查

    本文只介绍实际工作中常用的 WMS.WMTS.WFS.TMS 四种,WCS.WPS 等其它 OGC WebService 类型请自行查阅官方资料. 目录 0. 参数传递方式 1. WMS 速查 1.1 ...

  8. Mysql 系列 | 日志模块

    了解了 SQL 执行的流程,知道每一条语句都经过连接器.查询存储.分析器.优化器.执行器最后到存储引擎的过程.查询语句是如此,更新语句也不例外. 不同的是,更新语句会修改表数据,这里就涉及到两个重要的 ...

  9. 倍增求RMQ

    RMQ,即区间最值查询,给定一个序列,求区间l-r的最大值.最小值. st表求RMQ,预处理On*logn,查询O1. 预处理: void init_rmq() { for(rll j=1;j< ...

  10. VirtualBox 相关命令行

    简介 由于之前项目有一个需求,则是自动化创建虚拟机并加载相关配置,创建虚拟机无法避免对于虚拟机系统的设置,因此采用导入虚拟机的方式,并通过查阅virtualbox相关手册,知晓virtualbox可以 ...