ElasticSearch的基础使用

51 阅读1分钟

什么是elasticsearch

  • 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能
  • 它是基于Lucene二次开发的,elasticsearch是面向文档存储的,可以是数据库中的一条商品数据,一个订单信息,文档会被序列化为json格式后存储在elasticsearch

什么是Lucene

  • 是Apache的开源搜索引擎类库,提供了搜索引擎的核心API

什么是文档和词条

  • 每一条数据就是一个文档
  • 对文档中的内容分词,得到的词语就是词条

什么是正向索引

  • 基于文档id创建索引。查询词条时必须先找到文档,而后判断是否包含词条

什么是倒排索引

  • 对文档内容分词,对词条创建索引,并记录词条所在文档的信息。查询时先根据词条查询到文档id,而后获取到文档

 

使用Apifox对elasticsearch进行操作

分词器的作用是什么

  • 创建倒排索引时对文档分词
  • 用户搜索时,对输入的内容分词

 

测试分词器

Snipaste_2023-10-30_22-49-35.png

  • 可以修改为
    • english 对英文单词分词
    • chinese 对中文词语分词
  • 可以使用IK分词器
    • ik_max_word 细粒度
    • ik_smart 粗粒度

创建索引库

image.png

更新映射

image (1).png

插入文档

image (2).png

 

RestClient操作索引库

  • 什么是restClient

    • 它相当于是客户端,也就是当我们使用别的编程语言的时候,通过http请求发送请求时,需要它来发送给ES服务
  • 导入restHighLevelClient依赖

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>6.2.1</version>
    <exclusions>   //解决jar冲突
        <exclusion>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
        </exclusion>
        <exclusion>
            <artifactId>elasticsearch</artifactId>
            <groupId>org.elasticsearch</groupId>
        </exclusion>
    </exclusions>
</dependency>


<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>6.2.1</version>
</dependency>
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>6.2.1</version>
</dependency>