ElasticSearch

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: ElasticSearch什么?基于Luncene的搜索服务器。用Java开发的,主要解决mysql性能低、功能有限的问题。mysql是关系型数据库 like ‘%小区%’如果使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低。

ElasticSearch

什么?

基于Luncene的搜索服务器。用Java开发的,主要解决mysql性能低、功能有限的问题。

mysql是关系型数据库 like ‘%小区%’

如果使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低。

功能有限:有些电商的多个模糊搜索单个sql不太好做。

mysql有些情况下索引失效了,没有使用索引会使得效率低。同时数据量大,查询慢。这时一般用带有key-value形式的redis缓存或者专门擅长搜索的ES。


document————————》index(索引库)


ElasticSearch优点:

1、是一个分布式、高扩展、高实时的搜索与数据分析引擎。

2、基于Restful web接口

3、应用于 1 海量数据查询 2 日志数据分析 3 实时数据分析

与mysql一般一起用

ElasticSearch负责搜索数据,但是安全性性,不适合存储数据

mysql安全性高,用来存储数据,和部分CRUD


索引(index)

ElasticSearch存储数据的地方,可以理解成关系型数据库中的数据库概念。

映射(mapping)

mapping定义了每个字段的类型、字段所使用的分词器等。相当于关系型数据库中的表结构。

文档(document)

Elasticsearch中的最小数据单元,常以json格式显示。一个document相当于关系型数据库中的一行数据。

倒排索引(反向索引)

一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,对应一个包含它的文档id列表。

通过分词策略,形成词和文章的映射关系表,这种词典 映射表 就是倒排索引。

o(1) 复杂度 提高效率

底层 FST数据结构 空间占用小、查询速度快


=============


ElasticSearch的亮点除了各种各样的复杂问题简单化的查询、提高查询性能外;

它有这集群的特性,并天然支持分布式(封装好了分布式)


集群:多个人做一样的事

分布式:多个人做不一样的事


集群的好处:

系统高可用

分担请求的压力


分布式的好处:

系统高性能,高速度

分担存储和计算的压力

解耦


语法

查看详情
get /person002/_search
查看mappings
get /person002/_mapping
查看所有索引
get _cat/indices
查看100条件记录
GET _search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size":100
}
查看具体_doc_id
get /person002/_doc/8

应用

应用:智能客服、微博热点、百度搜索、外卖电商评价、翻译、广告推荐、机器学习、识别敏感信息

用哪些分词:

ik分词器

中文:

HanLP

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
3月前
|
消息中间件 数据采集 Kafka
elasticsearch系列(二)
elasticsearch系列(二)
|
7月前
|
Java 关系型数据库 API
ElasticSearch使用篇
ElasticSearch使用篇
|
存储 缓存 索引
Elasticsearch(四)
Elasticsearch(四)
63 0
|
存储 监控 搜索推荐
【Elasticsearch】初识elasticsearch(上)
【Elasticsearch】初识elasticsearch
76 0
|
存储 JSON 自然语言处理
【Elasticsearch】初识elasticsearch(下)
【Elasticsearch】初识elasticsearch(下)
76 0
|
存储 Java 关系型数据库
一起来学ElasticSearch(九)
前言 目前正在出一个Es专题系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~ 本节给大家讲下es中如何做聚合操作, 内容有点多,需要耐心看完~ 本文偏实战一些,好了, 废话不多说直接开整吧~ 什么是聚合 聚合的概念有点类似mysql中group by,sum(...),这么说大家可能就有点印象了, 但是在es中聚合操作功能更强大。 在了解es中聚合的概念之前,先来看下这两个概念, 聚合就是一个或多个桶和零个或多个指标的组合。
一起来学ElasticSearch(十)
前言 目前正在出一个Es专题系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~ 承接上文,上节给大家讲的es聚合还有一点内容,本节给大家更完~ 本文偏实战一些,为了方便演示,本节示例沿用上节索引,好了, 废话不多说直接开整吧~ 聚合排序 我们如何在聚合结果中进行自定义字段排序呢?
|
存储 自然语言处理 监控
大话ElasticSearch(上)
搜索引擎简述 什么是搜索? 搜索:就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索的关键字,然后就期望找到这个关键字相关的有些信息。 搜索分类: 普通的网页搜索、垂直搜索引擎等
|
缓存 自然语言处理 安全