Elasticsearch相关面试题

  1. Elasticsearch是什么?跟mysql的区别
    (1)elasticsearch是一个分布式、高性能、高可用、可伸缩的搜索和分析系统。 面向文档的nosql数据库,使用的格式是json,轻松的横向扩展,可支持PB级的结构化或非结构化数据处理

    (2)ElasticSearch是一个分布式搜索引擎,作为新生代NoSQL数据库代表之一,非常适合于非结构化文档类数据存储、更创新支持智能分词匹配模糊查询

    mysql为关系型数据库是当下Web应用开发中最流行的关系型数据库应用广泛,在数据查询场景下,默认返回所有满足匹配条件的记录
    
  2. Elasticsearch中的类型都是什么?
    String分为两种
    text 可分词,不可参与聚合

    keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合
    
    Numberical:数值类型分两类
    
    基本数据类型:long、integer、short、byte、double、float、half_float
    
    浮点数的高精度类型:scaled_float
    
    Date:日期类型
    
  3. Elasticsearch怎么创建索引库,怎么删除索引库,怎么查看索引库
    (1)Elasticsearch采用Rest风格API,因此其API就是一次http请求,你可以用任何工具发起http请求
    创建索引请求的格式:
    请求方式:PUT
    请求路径:/索引库名
    请求参数:json格式

    (2)删除索引使用DELETE请求

     删除索引的格式:
    
     		 DELETE /索引库名
    

    (3)查看索引

     查看索引的格式:
    
     		GET /索引库名
    
  4. Elasticsearch怎么创建映射,怎么查看映射,
    (1)创建映射
    请求方式:PUT
    PUT /索引库名/_mapping/类型名称
    type:类型,可以是text、long、short、date、integer、object等
    index:是否索引,默认为true
    store:是否存储,默认为false
    analyzer:分词器,这里的ik_max_word即使用ik分词器

    (2)查看映射

     GET /索引库名/_mapping		
    
  5. Elasticsearch怎么插入数据,怎么修改数据,怎么删除数据
    (1)插入数据
    POST /索引库名/类型名
    {
    “key”:“value”
    }
    自定义id插入数据
    POST /索引库名/类型/id值
    {

    }

    (2)修改数据

     PUT /索引库名/类型名/id
    

    {

        	"key":"value"
    

    }

    (3)删除数据

     DELETE /索引库名/类型名/id值
    
  6. Elasticsearch中搜索都有哪几种模式,分别介绍一下
    1、query string search

    搜索全部商品:GET /ecommerce/product/_search

    2、query DSL

    DSL:Domain Specified Language,特定领域的语言

    3、query filter

    对数据进行过滤

    4、full-text search

    full-text search(全文检索)

    5、phrase search

    phrase search(短语搜索)

    6、highlight search

    highlight search(高亮搜索结果)

  7. Elasticsearch中聚合是什么意思,桶是什么意思,度量是什么意思
    (1)Elasticsearch中的聚合,包含多种类型,最常用的两种,一个叫桶,一个叫度量:
    (2)桶的作用,是按照某种方式对数据进行分组,每一组数据在ES中称为一个桶

    (3)分组完成以后,我们一般会对组中的数据进行聚合运算,例如求平均值、最大、最小、求和等,这些在ES中称为度量

  8. 请写出一个聚合查询的语句,并解释含义
    GET /索引库/_search

    {

    "size" : 0,
    
    "aggs" : { 
    
        "popular_colors" : { 
    
            "terms" : { 
    
              "field" : "color"
    
            }
    
        }
    
    }
    

    }

    size: 查询条数

    aggs: aggregations的缩写

    popular_colors:给这次聚合起一个名字,任意。

    terms:桶方式,根据词条划分

    field:桶字段

  9. 请写出一个嵌套聚合查询的语句,并解释含义
    GET /索引库/_search

    {

    "size" : 0,
    
    "aggs" : { 
    
        "popular_colors" : { 
    
            "terms" : { 
    
              "field" : "color"
    
            },
    
            "aggs":{
    
                "avg_price": { 
    
                   "avg": {
    
                      "field": "price" 
    
                   }
    
                },
    
                "maker":{
    
                    "terms":{
    
                        "field":"make"
    
                    }
    
                }
    
            }
    
        }
    
    }
    

    }

    size: 查询条数

    aggs: aggregations的缩写

    popular_colors:给这次聚合起一个名字,任意。

    terms:桶方式,根据词条划分

    field:桶字段

    aggs:我们在上一个aggs(popular_colors)中添加新的aggs。可见度量也是一个聚合

    avg_price:聚合的名称

    avg:度量的类型,这里是求平均值

    field:度量运算的字段

    maker:在嵌套的aggs下新添一个桶,叫做maker

    terms:桶的划分类型依然是词条

    filed:这里根据make字段进行划分

  10. Elasticsearch中的端口号都有哪些,kinbana是干什么的?
    (1)9200:9200 作为 Http 协议,主要用于外部通讯
    (2)9300:9300 作为 Tcp 协议,jar 之间就是通过 tcp 协议通讯。
    ES 集群之间是通过 9300 进行通讯。
    (3)Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。
    而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch的语法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值