# 分布式搜索引擎-- elasticsearch基础

这篇具有很好参考价值的文章主要介绍了# 分布式搜索引擎-- elasticsearch基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1什么是elasticsearch?        

elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容,,可以用来实现搜索、日志统计、分析、系统监控等功能

1.1.1什么是ELK技术栈?

   是以elasticsearch为核心的技术栈,都包括:

  • ElasticSearch(存储,计算,搜索数据)
  • kibana(数据可视化)
  • Logstash(数据抓取)
  • Beats(数据抓取)

被广泛应用在日志数据分析、实时监控等领域.

 1.1.2什么是Lucene?

  • 是Apache的开源搜索引擎类库,提供了搜索引擎的核心API,elasticsearch底层是基于lucene来实现的。

  • Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:Apache Lucene - Welcome to Apache Lucene 。

 2.1ElasticSearch采用"倒排索引",搜索很快


# 分布式搜索引擎-- elasticsearch基础,搜索引擎,分布式,elasticsearch

  •  正向索引:从第一个开始一行一行的搜,需要遍历所有,速度慢,逐行扫描,也就是全表扫描,随着数据量增加,其查询效率也会越来越低。当数据量达到数百万时,就是一场灾难。
  •  倒排索引:保存文章后,分词器会拆成一个一个的词,这个词那个文档用过,都会记录下来文档id比如想搜 "华为手机" ,倒推出来,文档id(1,2,3),和华为手机有关系,直接根据这个(1,2,3),列表去磁盘查找,速度很快.
            总之,倒排索引就是你给我一个词,我能定位到那几个文档用过他,我直接去查用过他的文档,无需全表扫描。

3.1Mysql和Elasticsearch

  • Mysql:擅长事务类型操作,可以确保数据的安全和一致性

  • Elasticsearch:擅长海量数据的搜索、分析、计算

    因此在企业中,往往是两者结合使用:

  • 对安全性要求较高的写操作,使用mysql实现

  • 对查询性能要求较高的搜索需求,使用elasticsearch实现

  • 两者再基于某种方式,实现数据的同步,保证一致性
    # 分布式搜索引擎-- elasticsearch基础,搜索引擎,分布式,elasticsearch

4.1.1mapping映射属性

      索引库就类似MySQL数据库表,mapping映射就类似表的结构。

      我们要向es中存储数据,必须先创建“库”和“表”。

  • mapping是对索引库中文档的约束,常见的mapping属性包括:
  • type:字段数据类型,常见的简单类型有:
  •   - 字符串:text(可分词的文本)、keyword(指定不拆分,如:品牌、国家、ip地址)
  •   - 数值:long、integer、short、byte、double、float、
  •   - 布尔:boolean
  •   - 日期:date
  •   - 对象:object
  • - index:是否创建索引,默认为true
  • - analyzer:使用哪种分词器
  • - properties:该字段的子字段

 


5.1通过Java操作ES ,RestAPI

  • ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html
  • 其中的Java Rest Client又包括两种:
    - Java Low Level Rest Client
    - Java High Level Rest Client 

 5.2RestHighLevelClient 

 在elasticsearch提供的API中,与elasticsearch一切交互都封装在一个名为RestHighLevelClient的类中,必须先完成这个对象的初始化,建立与elasticsearch的连接。分三步:

  • 第一步:引入es的RestHighLevelClient依赖:
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
  • 第二步:因为SpringBoot默认的ES版本是7.6.2,所以我们需要覆盖默认的ES版本:
<properties>
    <java.version>1.8</java.version>
    <elasticsearch.version>7.12.1</elasticsearch.version>
</properties>
  • 第三步:在application.yml加配置(根据自己的情况来配置,我这是以部署到linux上为例)
    ​​​​​
    spring:
        elasticsearch: # es
        rest:
          uris: 192.168.74.129:9200 #指定自己linux的IP地址,9200是固定端口

5.3RestClient操作索引库

JavaRestClient操作elasticsearch的流程基本类似。核心是client.indices()方法来获取索引库的操作对象。

索引库操作的基本步骤:

- 初始化RestHighLevelClient
- 创建XxxIndexRequest。XXX是Create、Get、Delete
- 准备DSL( Create时需要,其它是无参)
- 发送请求。调用RestHighLevelClient#indices().xxx()方法,xxx是create、exists、delete

 5.4RestClient操作文档

文档操作的基本步骤:

- 初始化RestHighLevelClient
- 创建XxxRequest。XXX是Index、Get、Update、Delete、Bulk
- 准备参数(Index、Update、Bulk时需要)
- 发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete、bulk
- 解析结果(Get时需要)文章来源地址https://www.toymoban.com/news/detail-843875.html

到了这里,关于# 分布式搜索引擎-- elasticsearch基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch 分布式搜索引擎 速学

            elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容,它结合kibana、Logstash、Beats,也就是elastic stack(ELK)。它被广泛应用在日志数据分析、实时监控等领域,而elasticsearch是elastic stack的核心,负责存储

    2024年02月03日
    浏览(74)
  • 分布式搜索引擎-elasticsearch基础

    elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在 日志数据分析 、 实时监控 等领域。 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。 Lucen

    2024年03月20日
    浏览(45)
  • 分布式搜索引擎elasticsearch(一)

    elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。 文档(document):每条数据就是一个文档 词条(term):文档按照语义分成的词语 倒排索引中包含两部分内容: 词条词

    2024年02月02日
    浏览(80)
  • 分布式搜索引擎ElasticSearch——基础

    什么是elasticsearch elasticsearch的发展 https://lucene.apache.org/ https://www.elastic.co/cn/ 正向索引和倒排索引 安装elasticsearch,kibana https://github.com/medcl/elasticsearch-analysis-ik 部署单点es 创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: 加载镜像

    2024年01月17日
    浏览(34)
  • # 分布式搜索引擎-- elasticsearch基础

    elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容,,可以用来实现搜索、日志统计、分析、系统监控等功能    是以elasticsearch为核心的技术栈,都包括: ElasticSearch(存储,计算,搜索数据) kibana(数据可视化) Logstas

    2024年03月27日
    浏览(45)
  • 分布式搜索引擎ElasticSearch——深入elasticSearch

    聚合的分类 DSL实现Bucket聚合 DSL实现Metric聚合 RestAPI实现聚合 https://github.com/medcl/elasticsearch-analysis-pinyin DSL实现自动补全查询 Completion Suggester 修改酒店索引库数据结构 RestAPI实现自动补全查询 实现酒店搜索页面输入框的自动补全 数据同步思路分析 利用MQ实现mysql与elasticsearch数

    2024年01月17日
    浏览(38)
  • Elasticsearch 分布式全文搜索引擎原理解析

    作者:禅与计算机程序设计艺术 Elasticsearch是一个开源的分布式全文搜索引擎,它可以近实时地存储、检索数据。本系列文章将从以下几个方面对Elasticsearch进行深入分析: Elasticsearch的主要组成部分 索引、类型和映射(Mapping) 搜索请求处理流程 查询缓存机制 Elasticsearch集群

    2024年02月05日
    浏览(38)
  • ElasticSearch分布式搜索引擎(两万字详解)

    elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域: 而elasticsearch是elastic stack的核心,负责存储、搜索

    2024年01月25日
    浏览(42)
  • 分布式搜索引擎Elasticsearch基础入门学习

    Elasticsearh 是 elastic.co 公司开发的分布式搜索引擎。 Elasticsearch(简称ES)是一个开源的分布式、高度可扩展的全文搜索和分析引擎。它能够快速、近乎实时的存储、搜索和分析大量数据。适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型数据。 它通

    2024年02月03日
    浏览(25)
  • 微服务---分布式搜索引擎 elasticsearch基础

    1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近的车 1.1.2.ELK技术栈 elasticsearch结合kibana、Logstash、Beats,

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包