`

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视频教程带笔记

    elasticsearch-learning

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

    单片机C语言入门-以最为流行的80C51 单片机为例来学习单片机的C 语言编程技术

    该条指令会被反复执行的关键就在于main 中的第一行程序:for(;;),这里不对此作详细 的介绍,读者暂时只要知道,这行程序连同其后的一对大括号“{}”构成了一个无限循环语 句,该大括号内的语句会被反复执行。 第三...

    elasticsearch

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

    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...

    geektime-ELK:ELK培训

    《 Elasticsearch核心技术与实战》 Github地址极客时间:《 Elasticsearch核心技术与实战》视频课程购买地址-https: 第一部分:初识Elasticsearch第1章:概述课程介绍课程概要及学习建议Elasticsearch简介及其发展...

    jmeter压力测试课程入门到实战视频.rar

    │ Elk elasticsearch课件资料.rar │ jmeter课件资料.zip │ SpringBoot资料tb.zip ├ 第10章 高级篇之Jmeter压测课程总结和架构浅析 │ └ 35、课程总结和关于系统架构,推荐学习资料.mp4 ├ 第1章 章节一JMeter...

    Android 4游戏编程入门经典

     11.5.1 第一人称照相机或欧拉照相机  11.5.2 一个欧拉照相机的示例  11.5.3 跟随照相机  11.6 加载模块  11.6.1 wavefront obj格式  11.6.2 obj加载器的实现  11.6.3 使用obj加载器  11.6.4 关于加载模型的...

    android游戏编程入门

     11.5.1 第一人称照相机或欧拉  照相机 460  11.5.2 一个欧拉照相机的示例 463  11.5.3 跟随照相机 468  11.6 加载模块 470  11.6.1 Wavefront OBJ格式 470  11.6.2 OBJ加载器的实现 471  11.6.3 使用OBJ...

    大数据企业级项目用户画像实战

    第一章用户画像概念讲解,项目及环境构建 第二章数据ETL迁移、标签模型Oozie调度、标签存储与计算 第三章标签模型开发、规则匹配引擎 第四章SparkSQL开发、外部数据源配置、Hbase应用、统计开发 第五章Hbase条件过滤...

    Axon4.4 文档中文翻译

    本篇是Axon4.4框架的翻译文档,按原文档分为六个部分,第一部分为第一章,主要是Axon及相关知识介绍;第二部分为第二章,主讲快速入门;第三部分为Axon主体框架Axon Framework介绍,包括第三章到第12章的全部内容,...

    深入理解Luncen搜索引擎开发

    第1章 Lucene初识 Lucene4入门精通实战课程概述 Lucene系统架构 第2章 Lucene索引 Lucene索引里有什么 Lucene索引深入 Lucene索引深入优化 Lucene索引搜索 第3章 Lucene搜索实战 Lucene搜索实战 Lucene搜索深入...

    C++MFC教程

    +-- 第一章 VC入门 |------ 1.1 如何学好VC |------ 1.2 理解Windows消息机制 |------ 1.3 利用Visual C++/MFC开发Windows程序的优势 |------ 1.4 利用MFC进行开发的通用方法介绍 |------ 1.5 MFC中常用类,宏,函数...

    大数据之flink教程-TableAPI和SQL.pdf

    第一章 整体介绍 2 1.1 什么是 Table API 和 Flink SQL 2 1.2 需要引入的依赖 2 1.3 两种 planner(old & blink)的区别 4 第二章 API 调用 5 2.1 基本程序结构 5 2.2 创建表环境 5 2.3 在 Catalog 中注册表 7 2.3.1...

    Spark分布式内存计算框架视频教程

    第一章、Spark 基础环境 1.课程安排说明 2.Spark 框架概述 3.快速入门 4.Standalone集群及HA 5.Spark 应用开发入门 6.Spark 应用提交 7.Spark on YARN 8.应用部署模式DeployMode 第二章、SparkCore 模块 1.RDD 概念...

    OpenGL超级宝典 第5版 中文版 pdf

    第一部分包括第1章到第7章,介绍如何构建一个使用OpenGL的程序、如何设置3D渲染环境,以及如何创建基本对象和光线并对他们进行着色。然后深入研究如何使用OpenGL,并向读者介绍GLSL,以及如何创建自己的着色器。第二...

    Android高薪之路:Android程序员面试宝典 李宁

    第1章 Android入门 1 1 关于Android的非技术问题 1 1 1 为什么看好 Android 1 1 2 以前是否从事过Android的工作 做过哪些工作 1 1 3 你做的最复杂的界面是什么 1 1 4 如何解决Android学习中遇到的难题 1 1 5 Android...

    WebGL编程指南

    第2 章 WebGL 入门 9 Canvas 是什么? 10 使用[canvas] 标签 11 DrawRectangle.js 13 最短的WebGL 程序:清空绘图区 16 HTML 文件(HelloCanvas.html) 16 JavaScript 程序(HelloCanvas.js) 17 用示例程序...

    webgl编程指南及源码1/2

    第2 章 WebGL 入门 9 Canvas 是什么? 10 使用[canvas] 标签 11 DrawRectangle.js 13 最短的WebGL 程序:清空绘图区 16 HTML 文件(HelloCanvas.html) 16 JavaScript 程序(HelloCanvas.js) 17 用示例程序...

    webgl编程指南及源码2/2

    第2 章 WebGL 入门 9 Canvas 是什么? 10 使用[canvas] 标签 11 DrawRectangle.js 13 最短的WebGL 程序:清空绘图区 16 HTML 文件(HelloCanvas.html) 16 JavaScript 程序(HelloCanvas.js) 17 用示例程序...

Global site tag (gtag.js) - Google Analytics