[学习ES系列]-4.ElasticSearch基础交互-基础查询与高级查询

基础查询

POST http://127.0.0.1:9200/book/_search

  • 1.简单查询
{
    "query":{
        "match_all":{}
    }
}
  • 2.条件查询
{
    "query":{
        "match":{
            "title":"入门到精通"
        }
    },
    "from":1,
    "size":5,
    "sort":{
        "publish_date":{
            "order":"asc"
        }
    }

}
  • 3.聚合查询
{
    "aggs":{
        "group_by_word_count":{
            "terms":{
                "field":"word_count"
            }
        },
        "group_by_publish_date":{
            "terms":{
                "field":"publish_date"
            }
        }
    }

}
{
    "aggs":{
        "total_word_count":{
            "stats":{
                "field":"word_count"
            }
        }
    }
}
{
    "aggs":{
        "max_word_count":{
            "max":{
                "field":"word_count"
            }
        }
    }
}

高级查询

1.子条件查询 又称叶子条件查询(特定字段查询所指特定的值)

  • 1.1Query Context
    在查询的过程中,除了判断文档是否满足查询条件外,ES还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件的匹配程度有多好。
1.1.1全文本查询:针对文本类型(text)的数据
  • --1.模糊匹配
{
    "query":{
        "match":{
            "title":"PHP从入门到精通"
        }
    }
}

会匹配PHP、从入门到精通两个关键词

  • --2.习语匹配
{
    "query":{
        "match_phrase":{
            "title":"PHP从入门到精通"
        }
    }
}
  • --3.多个字段模糊匹配查询
{
    "query":{
        "multi_match":{
            "query":"PHP",
            "fields":["title","author"]
        }
    }
}

查询title或author中包含PHP关键字

  • --4.1语法查询
{
    "query":{
        "query_string":{
            "query":"(PHP AND 入门) OR 普改"
        }
    }
}

文本字段同时包含PHP和入门两个关键词或者文本字段包含普改

  • --4.2查询多字段(指定字段查询)
{
    "query":{
        "query_string":{
            "query":"PHP",
            "fields":["title","author"]
        }
    }
}
  • 1.1.2字段级别查询:针对结构化数据,如数字、日期等
  • --1.指定字段精确查询
{
    "query":{
        "term":{
            "author":"普改"
        }
    }
}
  • --2.范围查询
  • --2.1数字范围
{
    "query":{
        "range":{
            "word_count":{
                "gte":"170000",
                "lte":"200000"
            }
        }
    }
}
  • --2.2日期范围
{
    "query":{
        "range":{
            "publish_date":{
                "gte":"2018-01-01",
                "lte":"2019-12-30"
            }
        }
    }
}
{
    "query":{
        "range":{
            "publish_date":{
                "gte":"2019-01-01",
                "lte":"now"
            }
        }
    }
}

1.2Filter Context
在查询过程中,只判断该文档是否满足条件,只有yes或者no.
(query判断yes或者no,还会_score匹配程度)

ES会对查询结果做缓存,故速度比Query要快

{
    "query":{
        "bool":{
            "filter":{
                "term":{
                    "author":"普改"
                }

            }
        }
    }
}

2.复合条件查询(以一定的逻辑组合子查询查询)

原文地址:http://blog.51cto.com/phpme/2345048

时间: 2024-08-29 07:58:09

[学习ES系列]-4.ElasticSearch基础交互-基础查询与高级查询的相关文章

[学习ES系列]-3.ElasticSearch基础交互

RESTful API with JSON over HTTP 创建索引 PUT http://127.0.0.1:9200/people { "setting":{ "number_of_shards":5, "number_of_replicas":1 }, "mappings":{ "man":{ "properties":{ "name":{ "ty

【2017-03-10】T-sql基础语句及条件,高级查询

一.T-sql基础语句 1.创建数据库:create database 数据库名  (不能中文,不能数字开头,不能符号开头) 2.删除数据库:drop database 数据库名 3.选择数据库:use 数据库名 4.创建表:create table 表名 ( 列名  数据类型, 列名  数据类型, 列名  数据类型 设置主键列:primary key 设置唯一列:unique 设置非空:not null 设置自增列:identity(1,1)   -从1开始计数,每次自增1 ) 5.删除表:d

[学习ES系列]-1.认识ElasticSearch及环境准备与服务搭建

一.认识ElasticSearch Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据. 它被用作全文检索.结构化搜索.分析以及这三个功能的组合. 摘自<Elasticsearch: 权威指南> Elasticsearch 使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API. 然而,Elast

数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)

一.增 C:create 增加,创建,向数据库里面添加数据. insert into Fruit values('K009','苹果',3.0,'高青',90,'') insert into Fruit(Ids,Name,Price,Source,Numbers) values('K010','苹果',3.0,'高青',90) 二.改 U:update修改,从数据库表里面修改数据. update Fruit set Source='烟台' where Ids='K001' 三.删 D:delet

Mysql 基础 高级查询

在西面内容中    car  和  nation   都表示 表名 1.无论 高级查询还是简单查询   都用  select.. from..语句   from  后面 加表名  可以使一张表也可以是多张表   表和表之间用逗号隔开 2. 简单查询和高级查询 不是 独立的   高级查询里面 同样可以用到 简单查询   3.简单查询与复杂查询的联系: 简单查询里面 后面的条件 未知时 需要用另一个 查询来代替  这样就变成了高级查询 4.链接查询  和  联合查询的区别:1. 链接查询 连接两张以

Python学习系列(八)( 面向对象基础)

 Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类本身. 2,类的方法:对象也可以使用属于类的函数来具有功能,这样的函数称之为类的方法.域和方法合称为类的属性.类使用class关键字创建,类的属性被列在一个缩进块中. 3,self:类的方法与普通的函数只有一个特别的区别----他们必须有一个额外的第一个参数名称,但是在调用的时候不能为其赋值,Pyt

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

[原]零基础学习视频解码系列文章

注:本系列文章的开发环境:Ubuntu 14.04+Eclipse4.3.2+CDT+FFmpeg2.3+SDL1.25 [原]零基础学习视频解码之安装ffmpeg [原]零基础学习视频解码之FFMpeg中比较重要的函数以及数据结构 [原]零基础学习视频解码之解码图像 [原]SDL开发教程 [原]零基础学习视频解码之解码声音 [原]零基础学习视频解码之视频线程 [原]零基础学习视频解码之同步视频 [原]零基础学习视频解码之同步音频 [原]零基础学习视频解码之seek [原]零基础学习视频解码之后

hive 学习系列五(hive 和elasticsearch 的交互,很详细哦,我又来吹liubi了)

hive 操作elasticsearch 一,从hive 表格向elasticsearch 导入数据 1,首先,创建elasticsearch 索引,索引如下 curl -XPUT '10.81.179.209:9200/zebra_info_demo?pretty' -H 'Content-Type: application/json' -d' { "settings": { "number_of_shards":5, "number_of_replic