`

ElasticSearch入门--第一章

阅读更多

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"

     }

    }

}

}'

 

转载请注明出处

 

0
1
分享到:
评论

相关推荐

    第一章 ElasticSearch入门篇.docx

    "ElasticSearch 入门篇" ElasticSearch 是一个基于 Lucene 的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。ElasticSearch 是用 Java 开发的,并作为 Apache 许可条款下的开放...

    elasticsearch-learning

    《Elasticsearch 核心技术与实战》第一部分:初识 Elasticsearch第 1 章:概述课程介绍课程综述及学习建议Elasticsearch 简介及其发展历史Elastic Stack 家族成员及其应用场景第 2 章:安装上手Elasticsearch 的安装...

    elasticsearch

    《ElasticSearch:可扩展的开源弹性搜索...《ElasticSearch:可扩展的开源弹性搜索解决方案》是初学者学习ElasticSearch 不可多得的一本入门好书,对使用过ElasticSearch 及知道Apache Solr搜索引擎的人也颇有帮助。

    《Android从入门到精通》ppt 第一章

    **Android技术概述** Android,由谷歌公司主导开发,是一款基于Linux内核的开源移动操作...通过阅读这份"《Android从入门到精通》ppt 第一章",你将对Android有一个全面而基础的认识,为后续深入学习奠定坚实的基础。

    Android 4游戏编程入门经典

    - **第一个Android项目**:通过创建一个简单的项目来熟悉开发流程。 ##### 第3章:游戏开发入门 - **游戏开发基础**:学习游戏设计的基本原理和技术。 - **游戏循环概念**:理解游戏开发中的核心机制——游戏循环...

    Android.游戏开发入门

    - **第7章:OpenGL ES入门**:提供了OpenGL ES的入门教程,适合初学者学习。 - **第8章:2D游戏编程技巧**:分享了一系列提高2D游戏质量的小技巧。 - **第10章:OpenGL ES:进入3D世界**:进一步介绍了OpenGL ES在3D...

    OpenGLES demo - 10. DrawElements, Vertex Buffer和Index Buffer

    在这个OpenGLES入门课程的第10章中,我们将深入探讨这三个主题,了解它们的工作原理以及如何在实际应用中使用它们。 首先,`drawElements`是一个OpenGL ES中的函数,用于指示GPU根据指定的模式和索引来绘制几何形状...

    西蒙iphone opengl es 第00章

    西蒙(可能是指一位知名的教程作者或讲师)的"iPhone OpenGL ES 第00章"很可能是系列教程的开篇,旨在引导学习者入门这个强大的图形编程框架。在这个章节中,通常会涵盖以下几个核心知识点: 1. **OpenGL ES 概述**...

    Android基础教程(第3版·修订版)

    - **Diego Torres Milano** (Android专家兼博主):本书第三版涵盖了从基础知识到高级话题的广泛内容,特别是一些难以找到的主题,如多点触控和OpenGL ES。 - **Nathan Rapp** (KMBurritoDesigns创始人):《Hello,...

    Beginning Android Games( Android 游戏开发入门)

    ##### 第2章:Android SDK的第一步 - **安装和配置Android SDK**。 - **Android Studio的使用方法**。 - **创建第一个Android项目**。 - **运行和调试Android应用**。 ##### 第3章:游戏开发101 - **游戏设计的...

    Java进阶教程数据层全栈方案SpringData高级应用视频教程

    第一章 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开发的某个特定阶段或主题。"第三章"通常意味着在学习路径中的一个中间环节,可能是...

    Android入门到精通详解(完整书签)

    #### 第一篇:Android系统结构和SDK使用 ##### 第1章:Android的系统介绍 - **系统介绍**:Android是Google开发的一款基于Linux平台的开源操作系统,专为移动设备设计。它包含了操作系统、中间件以及一系列标准...

    第2章-开始学习.zip

    学习Swift的基础语法、数据类型、控制流、函数和类是开始iOS开发的第一步。 2. **UIKit框架**:UIKit是iOS应用程序的核心,提供了构建用户界面和处理用户交互的组件。理解UIView、UIViewController、Storyboard和...

    beginning android games

    - **第一章:普及Android**:介绍Android操作系统的历史、特点及其在移动设备上的广泛应用。 - **第二章:Android SDK入门**: - 安装和配置Android开发环境。 - 使用Android Studio创建第一个项目。 - 了解...

    Beginning.Android.Games

    - **第一章:Android——新起之秀** - 介绍了Android平台的历史背景和发展现状。 - 讨论了为什么选择Android作为游戏开发平台的原因。 - 强调了Android平台对于游戏开发者的重要性。 - **第二章:Android SDK初...

    第1章 实验入门1

    在IA-32处理器中,有6个段寄存器,它们是cs(代码段)、ss(栈段)、ds(数据段)、es(额外数据段)、fs和gs。这些寄存器用于存储段选择子,段选择子配合全局描述表(GDT)或局部描述表(LDT)来确定实际的内存地址...

    Android OPhone 开发完全讲义

    - **第2章 第一个Android程序**:引导读者创建自己的第一个Android应用,理解其基本结构和运行流程。 2. **基础篇**:深入探讨Android的核心技术和应用开发流程。 - **第3章 Android应用程序架构**:介绍Android...

Global site tag (gtag.js) - Google Analytics