ElasticSearch入门第一章
注:本文仅针对ElasticSearch权威指南(中文版)中出现的简写命令进行curl的示例复原.仅供作为学习笔记使用.
ES权威指南中文版
链接地址:
http://es.xiaoleilu.com/010_Intro/25_Tutorial_Indexing.html
http://es.xiaoleilu.com/010_Intro/30_Tutorial_Search.html
1.简单的ES搜索请求
#查询索引数量
curl -XGET '192.168.4.3:9201/_count?pretty' -d '
{
"query": {
"match_all": {}
}
}'
#插入数据
curl -XPUT '127.0.0.1:9201/megacorp/employee/1' -d '
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}'
curl -XPUT '127.0.0.1:9201/megacorp/employee/2' -d '
{
"first_name" : "Jane",
"last_name" : "Smith",
"age" : 32,
"about" : "I like to collect rock albums",
"interests": [ "music" ]
}'
curl -XPUT '127.0.0.1:9201/megacorp/employee/3' -d '
{
"first_name" : "Douglas",
"last_name" : "Fir",
"age" : 35,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}'
curl -XPUT '127.0.0.1:9201/megacorp/employee/4' -d '
{
"first_name" : "Douglas",
"last_name" : "Fir2",
"age" : 35,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}'
curl -XPUT '127.0.0.1:9201/megacorp/employee/5' -d '
{
"first_name" : "Douglas",
"last_name" : "Fir Smith",
"age" : 35,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}'
#查询数据-检索文档
curl -XGET '127.0.0.1:9201/megacorp/employee/1'
#删除索引
curl -XDELETE '127.0.0.1:9201/megacorp/'
#删除类型
curl -XDELETE '127.0.0.1:9201/megacorp/employee'
#删除文档
curl -XDELETE '127.0.0.1:9201/megacorp/employee/3'
#简单搜索--默认返回前十个数据
curl -XGET '127.0.0.1:9201/megacorp/employee/_search'
#按关键字查询--查询制定字符串,精确匹配 q=${fieldName}:${fieldValue}
curl -XGET '127.0.0.1:9201/megacorp/employee/_search?q=last_name:Smith'
#使用DSL语言进行查询
curl -XGET '127.0.0.1:9201/megacorp/employee/_search' -d '
{
"query" : {
"match" : {
"last_name" : "Smith"
}
}
}'
curl -XGET '127.0.0.1:9201/megacorp/employee/_search' -d '
{
"query" : {
"match" : {
"last_name" : "Fir"
}
}
}'
#使用DSL语言进行查寻并添加区间过滤器过滤结果--首先查找年龄大于30的结果再查找lastname为史密斯的结果
curl -XGET '127.0.0.1:9201/megacorp/employee/_search' -d '
{
"query" : {
"filtered" : {
"filter" : {
"range" : {
"age" : { "gt" : 30 }
}
},
"query" : {
"match" : {
"last_name" : "smith"
}
}
}
}
}'
#相关性查询即全文搜索,包含短语或某个词就返回,然后进行打分--根据相关性评分查找并进行排序
curl -XGET '127.0.0.1:9201/megacorp/employee/_search' -d '
{
"query" : {
"match" : {
"about" : "rock climbing"
}
}
}'
#精确匹配即短语搜索--确切的匹配若干个单词或短语
curl -XGET '127.0.0.1:9201/megacorp/employee/_search' -d '
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
}
}'
#高亮结果--结果在上一个查询结果上添加highlight字段包含来自about中的文本,并用<em></em>来标识单词
curl -XGET '127.0.0.1:9201/megacorp/employee/_search' -d '
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
},
"highlight": {
"fields" : {
"about" : {}
}
}
}'
2.简单的聚合请求
#统计所有职员的兴趣爱好 计数
curl -XGET '127.0.0.1:9201/megacorp/employee/_search?pretty' -d '
{
"aggs": {
"all_interests": {
"terms": { "field": "interests" }
}
}
}'
#统计员工名叫Smith的兴趣爱好
curl -XGET '127.0.0.1:9201/megacorp/employee/_search?pretty' -d '
{
"query": {
"match": {
"last_name": "smith"
}
},
"aggs": {
"all_interests": {
"terms": {
"field": "interests"
}
}
}
}'
#统计所有员工的平均年龄
curl -XGET '127.0.0.1:9201/megacorp/employee/_search?pretty' -d '
{
"aggs" : {
"avg_age" : {
"avg" : { "field" : "age" }
}
}
}
}'
#统计每种兴趣下员工的平均年龄--分级聚合
curl -XGET '127.0.0.1:9201/megacorp/employee/_search?pretty' -d '
{
"aggs" : {
"all_interests" : {
"terms" : { "field" : "interests" },
"aggs" : {
"avg_age" : {
"avg" : { "field" : "age" }
}
}
}
}
}'
#按first_name统计聚合结果
curl -XGET '127.0.0.1:9201/megacorp/employee/_search?pretty' -d '
{
"aggs": {
"all_interests": {
"terms": {
"field": "first_name"
}
}
}
}'
转载请注明出处
相关推荐
"ElasticSearch 入门篇" ElasticSearch 是一个基于 Lucene 的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。ElasticSearch 是用 Java 开发的,并作为 Apache 许可条款下的开放...
《Elasticsearch 核心技术与实战》第一部分:初识 Elasticsearch第 1 章:概述课程介绍课程综述及学习建议Elasticsearch 简介及其发展历史Elastic Stack 家族成员及其应用场景第 2 章:安装上手Elasticsearch 的安装...
《ElasticSearch:可扩展的开源弹性搜索...《ElasticSearch:可扩展的开源弹性搜索解决方案》是初学者学习ElasticSearch 不可多得的一本入门好书,对使用过ElasticSearch 及知道Apache Solr搜索引擎的人也颇有帮助。
**Android技术概述** Android,由谷歌公司主导开发,是一款基于Linux内核的开源移动操作...通过阅读这份"《Android从入门到精通》ppt 第一章",你将对Android有一个全面而基础的认识,为后续深入学习奠定坚实的基础。
- **第一个Android项目**:通过创建一个简单的项目来熟悉开发流程。 ##### 第3章:游戏开发入门 - **游戏开发基础**:学习游戏设计的基本原理和技术。 - **游戏循环概念**:理解游戏开发中的核心机制——游戏循环...
- **第7章:OpenGL ES入门**:提供了OpenGL ES的入门教程,适合初学者学习。 - **第8章:2D游戏编程技巧**:分享了一系列提高2D游戏质量的小技巧。 - **第10章:OpenGL ES:进入3D世界**:进一步介绍了OpenGL ES在3D...
在这个OpenGLES入门课程的第10章中,我们将深入探讨这三个主题,了解它们的工作原理以及如何在实际应用中使用它们。 首先,`drawElements`是一个OpenGL ES中的函数,用于指示GPU根据指定的模式和索引来绘制几何形状...
西蒙(可能是指一位知名的教程作者或讲师)的"iPhone OpenGL ES 第00章"很可能是系列教程的开篇,旨在引导学习者入门这个强大的图形编程框架。在这个章节中,通常会涵盖以下几个核心知识点: 1. **OpenGL ES 概述**...
- **Diego Torres Milano** (Android专家兼博主):本书第三版涵盖了从基础知识到高级话题的广泛内容,特别是一些难以找到的主题,如多点触控和OpenGL ES。 - **Nathan Rapp** (KMBurritoDesigns创始人):《Hello,...
##### 第2章:Android SDK的第一步 - **安装和配置Android SDK**。 - **Android Studio的使用方法**。 - **创建第一个Android项目**。 - **运行和调试Android应用**。 ##### 第3章:游戏开发101 - **游戏设计的...
第一章 SpringData概述 1.持久层开发的问题 2.SpringData简介 第二章 JPA回顾 1.JPA基础 2.JPA实战 3.JPA的重要API介绍 第三章 SpringData JPA基础 1.SpringData JPA简介 2.SpringData JPA快速入门 3.SpringData Jpa...
"明日科技-android第三章源码"这一资源显然是一个针对Android开发的学习材料,可能是一个课程或教程的一部分,专注于讲解Android开发的某个特定阶段或主题。"第三章"通常意味着在学习路径中的一个中间环节,可能是...
#### 第一篇:Android系统结构和SDK使用 ##### 第1章:Android的系统介绍 - **系统介绍**:Android是Google开发的一款基于Linux平台的开源操作系统,专为移动设备设计。它包含了操作系统、中间件以及一系列标准...
学习Swift的基础语法、数据类型、控制流、函数和类是开始iOS开发的第一步。 2. **UIKit框架**:UIKit是iOS应用程序的核心,提供了构建用户界面和处理用户交互的组件。理解UIView、UIViewController、Storyboard和...
- **第一章:普及Android**:介绍Android操作系统的历史、特点及其在移动设备上的广泛应用。 - **第二章:Android SDK入门**: - 安装和配置Android开发环境。 - 使用Android Studio创建第一个项目。 - 了解...
- **第一章:Android——新起之秀** - 介绍了Android平台的历史背景和发展现状。 - 讨论了为什么选择Android作为游戏开发平台的原因。 - 强调了Android平台对于游戏开发者的重要性。 - **第二章:Android SDK初...
在IA-32处理器中,有6个段寄存器,它们是cs(代码段)、ss(栈段)、ds(数据段)、es(额外数据段)、fs和gs。这些寄存器用于存储段选择子,段选择子配合全局描述表(GDT)或局部描述表(LDT)来确定实际的内存地址...
- **第2章 第一个Android程序**:引导读者创建自己的第一个Android应用,理解其基本结构和运行流程。 2. **基础篇**:深入探讨Android的核心技术和应用开发流程。 - **第3章 Android应用程序架构**:介绍Android...