es(一)——入门

  1. 名词解释

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Field

  1. 建立索引(相当于建立数据库i)
PUT /megacorp/employee/1 
{   
	"first_name" : "John",   
	"last_name" :  "Smith",    
	"age" :  25,    
	"about" :  "I love to go rock climbing",    
	"interests": [ "sports", "music" ]
}
  1. 检索文档(相当于查询某一条数据)

GET /megacorp/employee/1

检索结果:
在这里插入图片描述
4. 简单搜索

4.1 搜索全部员工

GET /megacorp/employee/_search

结果:

在这里插入图片描述
在这里插入图片描述
4.2 轻量级搜索,们搜索姓氏中包含“Smith”的员工

这种方法常被 称作查询字符串(query string)搜索,因为我们像传递URL参数一样去传递查询语句:

GET /megacorp/employee/_search?q=last_name:Smith

结果略

  1. 使用DSL语句查询

DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。我们可以这样表示之前关于“Smith”的查询:

GET /megacorp/employee/_search 
{    
	"query" : {        
		"match" : {            
			"last_name" : "Smith"        
		}    
	} 
}


这会返回与之前查询相同的结果。你可以看到有些东西改变了,我们不再使用查询字符串(query string)做为参数,而是使用 请求体代替。这个请求体使用JSON表示,其中使用了 match 语句(查询类型之一,具体我们以后会学到)。

  1. 更复杂的搜索
    在这里插入图片描述
  2. 全文搜索
    在这里插入图片描述
    结果及说明
    在这里插入图片描述
  3. 短语搜索
    在这里插入图片描述
  4. 高亮搜索
    在这里插入图片描述
    结果及说明
    在这里插入图片描述
  5. 分析(聚合)

Elasticsearch有一个功能叫做聚合 (aggregations),它允许你在数据上生成复杂的分析统计。它很像SQL中的 GROUP BY 但是功能更强大。
在这里插入图片描述
结果:
在这里插入图片描述

我们可以看到两个职员对音乐有兴趣,一个喜欢林学,一个喜欢运动。这些数据并没有被预先计算好,它们是实时的从匹配 查询语句的文档中动态计算生成的。

  • 例2
    我们想知道所有姓"Smith"的人最大的共同点(兴趣爱好),我们只需要增加合适的 语句既可:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    10.1 聚合也允许分级汇总

例如,让我们统计每种兴趣下职员的平均年龄:
在这里插入图片描述
结果:
在这里插入图片描述
摘自:es权威指南

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值