28、Elasticsearch入门

一、ES简介

1 - es简介

  • mysql面临的问题
    • 性能低下:数据量或者并发比较大的情况下,like的效率低下
    • 没有相关性排名:我们使用搜索引擎搜索的时候,希望关联度比较高的搜索在前面展示
    • 无法全文搜索
    • 搜索不准确 —— 没有分词
  • 什么是全文搜索
    • 我们生活中的数据总体分为两种:结构化数据和非结构化数据
      • 结构化数据:具有固定格式或有限长度的数据,如数据库、元数据等
      • 非结构化数据:指不定长或无固定格式的数据,如邮件、word文档等
  • 什么是ES:ES是一个分布式可扩展的实时搜索和分析引擎,一个简历在全文搜索引擎Apache Lucene(TM)基础上的搜索引擎;当然ES并不仅仅是Lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作
    • ①.分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索
    • ②.实时分析的分布式搜索引擎
    • ③.可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据
  • ES适用场景
    • 电商网站、检索商品
    • 日志数据分析、logstash采集日志、ES进行复杂的数据分析(ELK)
    • 商品价格监控网站、用户设定价格阀值
    • BI系统、商业智能、ES执行数据分析和挖掘

2 - es中的type、index、mapping、dsl

mysqlElasticsearch
database——
tableindex(7.x开始理解为table)、(7.x开始type为固定值_doc)
rowdocument
columnfield
schemamapping
sqlDSL(Descriptor Structure Language)
  • 索引:index。es将它的数据存储到一个或者多个索引(index)中,索引就像数据库,可以向索引写入文档或者从索引中读取文档
    • 在es索引有2个概念:动词(insert)、名词(表)
      • 动词:es中描述添加数据 -> 索引一个数据
      • 名词:es中描述一个数据在一个表中 -> 一个数据在一个索引中

3 - es的本质

在这里插入图片描述


二、安装ES和kibana


三、ES创建添加数据

1 - 新建数据

  • put + id新建数据:account是index;_doc是固定写法;1是id
    • put必须添加id,否则会报错
    • account不存在也会帮我们新建
    • account嵌套了company
PUT account/_doc/1
{
  "name":"bobby",
  "age":18,
  "company":[
    {
      "name":"imooc",
      "address":"beijing"
    },
    {
      "name":"immoc2",
      "address":"shanghai"
    }
  ]
}

在这里插入图片描述

  • put + id新建数据返回:_shards分布式中的分片;_seq_no乐观锁;
{
  "_index" : "account",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}

  • put如果id数据存在则为update,否则为create:updated状态码200,created状态码201
    在这里插入图片描述
  • 查看新建的index
    在这里插入图片描述
  • post不带id新建数据
post user/_doc/
{
  "name":"bobby",
  "company":"imooc"
}

在这里插入图片描述

  • 如果post带id就和put的操作是一样的了:只是put不允许带id
    在这里插入图片描述
  • post + _create:有就新建没有报错
POST user/_create/1
{
  "name":"bobby",
  "company":"imooc"
}

在这里插入图片描述

2 - 查看索引

  • 查看所有索引GET _cat/indices
    在这里插入图片描述
  • 查看具体索引GET account
    在这里插入图片描述

3 - post的坑

  • post的updated会删除掉之前的数据:put也是一样的
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 如何向已有数据添加数据?:带上_update,并且将新数据包裹在doc中
    在这里插入图片描述
  • 使用_update和_doc这种方式是会检查的:可以发现无论怎么执行_version和_seq_no都是不会改变的
    在这里插入图片描述

四、ES获取数据

1 - 数据获取

  • 获取数据GET user/_doc/1
    在这里插入图片描述
  • 获取特定的数据GET user/_source/1
    在这里插入图片描述

2 - 通过url搜索数据

  • 查询所有indexGET _search?q=bobby
    在这里插入图片描述
  • 查询指定索引数据GET user/_search?q=bobby
    在这里插入图片描述

3 - 通过request body查询数据(重点)

  • 查询所有数据
GET user/_search
{
  "query": {
    "match_all": {}
  }
}

在这里插入图片描述


五、删除数据

  • 删除数据DELETE user/_doc/2
    在这里插入图片描述
  • 删除后再查询:_found为false,并且状态为404

在这里插入图片描述

  • 删除索引DELETE user
    在这里插入图片描述
    在这里插入图片描述

六、批量插入和批量查询

1 - POST _bulk

  • POST _bulk
POST _bulk
{"index":{"_index":"user","_id":"1"}}
{"name":"bobby"}
{"index":{"_index":"user","_id":"2"}}
{"name":"bobby2"}

在这里插入图片描述

  • 操作是独立的:批量操作,每个操作都是独立的,即使失败了也不会影响其他操作
    在这里插入图片描述
  • 操作是可以混合的:不要求各操作必须一样
    在这里插入图片描述

2 - 导入官方数据测试

3 - GET _mget

在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
ElasticSearch是一个开源的分布式搜索引擎,基于Lucene库。它可以快速地存储、搜索和分析大量的数据ElasticSearch被广泛用于日志分析、全文搜索、安全分析和商业智能等领域。 以下是ElasticSearch入门指南: 1. 安装ElasticSearch:你可以从ElasticSearch官网下载并安装ElasticSearch。根据你的操作系统选择相应的版本。 2. 启动ElasticSearch:启动ElasticSearch非常简单。只需在终端中运行elasticsearch命令即可。 3. 探索ElasticSearch:通过在浏览器中输入http://localhost:9200/,可以访问ElasticSearch的REST API,并能看到ElasticSearch的基本信息。 4. 创建索引:在ElasticSearch中,数据被存储在索引中。你可以通过发送PUT请求来创建一个新的索引。例如,你可以使用以下命令来创建一个名为“my_index”的新索引: ``` PUT /my_index { "settings": { "number_of_shards": 1, "number_of_replicas": 0 } } ``` 5. 添加文档:在ElasticSearch中,文档是指一个JSON对象。你可以使用以下命令将文档添加到“my_index”索引中: ``` PUT /my_index/_doc/1 { "title": "Elasticsearch入门", "author": "John", "content": "Elasticsearch是一个开源的分布式搜索引擎" } ``` 6. 搜索文档:你可以使用以下命令来搜索“my_index”索引中的所有文档: ``` GET /my_index/_search ``` 7. 进行查询:你可以使用查询语句来搜索“my_index”索引。例如,你可以使用以下命令来搜索标题包含“Elasticsearch”的所有文档: ``` GET /my_index/_search { "query": { "match": { "title": "Elasticsearch" } } } ``` 这就是ElasticSearch入门指南。对于更深入的学习,你可以查看ElasticSearch官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无休止符

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

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

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

打赏作者

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

抵扣说明:

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

余额充值