[ElasticSearch]十道经典ElasticSearch面试题 一次看过瘾

1. Elasticsearch是什么?跟mysql的区别

ElasticSearch 是一个Java开发 基于Lucene 的 RESTful 风格的分布式的全文搜索引擎(Lucene是Apache基金会的一个开源全文检索引擎工具包)


ElasticSearch本质是搜索引擎,它通过建立反向索引的方式处理文档型数据,不具备通常数据库的事务、关联查询等等特性,你可以把它当作nosql来用。
MySQL是典型的关系型数据库

2. Elasticsearch中的类型都是什么?

数据类型
一级分类二级分类具体类型
核心类型字符串类型string text keyword
整数类型integer long short byte
浮点类型double float half_float scaled_float
逻辑类型boolean
日期类型date
范围类型range
二进制类型binary
复合类型数组类型array
对象类型object
嵌套类型nested
地理类型地理坐标类型geo_point
地理地图geo_shape
特殊类型IP类型ip
范围类型completion
令牌技术类型token_count
附件类型attachment
抽取类型percolator

3. Elasticsearch怎么创建索引库,怎么删除索引库,怎么查看索引库

#创建索引库
PUT 索引库名称
{
   "settings": {
       "number_of_shards": 3,
       "number_of_replicas": 2
     }
}

#查看索引库
GET 索引库名称

#删除索引库
DELETE 索引库名称

#验证索引是否还存在
HEAD 索引库名称

4. Elasticsearch怎么创建映射,怎么查看映射,怎么删除映射

#创建映射
PUT /索引库名/_mapping/类型名称
{
 "properties": {
   "字段名": {
     "type": "基本类型",
     "index": true//是否索引
     "store": true//是否存储
     "analyzer": "分词器类型"
   }
 }
}

#查看映射
GET /索引库名/_mapping

#删除映射
DELETE /索引库名/_mapping

5. Elasticsearch怎么插入数据,怎么修改数据,怎么删除数据

#新增数据
POST /索引库名/类型名
{
   "key":"value"
}

#查看数据
get _search
{
   "query":{
       "match_all":{}
   }
}

#修改数据
PUT /索引库名/类型名/id
{
   "要修改的字段":"修改后的内容"
}

#删除数据
DELETE /索引库名/类型名/id

6. Elasticsearch中搜索都有哪几种模式,分别介绍一下

查询所有(match_all)

匹配查询(match)

将查询条件进行分词 作为 多个词条 多个词条之间默认的关系是 OR

词条查询(term)

精确值匹配 精确值可以是数字 时间 布尔值 未分词的 字符串等等

布尔组合(bool)

其他的查询方式通过 must(&) must_not(!) should(|) 组合

范围查询(range)

查询指定区间内的 时间 或者 数字

模糊查询(fuzzy)

模糊查询 是 词条查询 的 模糊等价 模糊查询允许用户搜索词条 与 实际词条有较小偏差
偏差不能超过2

7. Elasticsearch中聚合是什么意思,桶是什么意思,度量是什么意思

聚合是独立的功能单元可以被混合在一起来满足你的需求

桶是指的是满足某个条件的文档集合。

度量是为某个桶中的文档计算得到的统计信息

8. 请写出一个聚合查询的语句,并解释含义

GET /索引库名/_search
{
   "size" : 0,
       "aggs":{
           "avg_price": { 
              "avg": {
                 "field": "price" // 计算平均值
              }
           }
       }

9. 请写出一个嵌套聚合查询的语句,并解释含义

GET /索引库名/_search
{
   "size" : 0,
   "aggs" : { 
       "popular_colors" : { 
           "terms" : { 
             "field" : "color"
           },
           "aggs":{
               "avg_price": { 
                  "avg": {
                     "field": "price" 
                  }
               },
               
               /*
               	将 color 字段再次 粪桶
               */
               
               "maker":{
                   "terms":{
                       "field":"make"
                   }
               }
           }
       }
   }
}

10. ElasticSearch中的端口号都有哪些,kibana是干什么的?

9300

9200

Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。

愿你走出前半生 归来仍是少年

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值