#bool查询
#老版本的filtered查询已经被bool代替
#用 bool包括 must should must_not filter来完成 ,格式如下:
#bool:{
#  "filter":[],
#  "must":[],
#  "should":[],
#  "must_not"[],
#}
#must 数组内的所有查询都必须满足
#should 数组内只需要满足一个
#must_not 一个都不能满足

#建立测试数据
POST lagou/testdb/_bulk
{"index":{"_id":}}
{"salary":,"title":"python"}
{"index":{"_id":}}
{"salary":,"title":"Scrapy"}
{"index":{"_id":}}
{"salary":,"title":"Django"}
{"index":{"_id":}}
{"salary":,"title":"Elasticsearch"}
#简单过滤查询

#最简单的fiter查询
#select * from testdb where salary=20
#filter 薪资为20的工作

GET lagou/testdb/_search
{
"query":{
"bool": {
"must":{
"match_all":{}
},
"filter": {
"terms": {
"salary": [,]
}
}
}
}
}

#filter里面也能写多值查询

#select * from testdb where title="python"
GET lagou/testdb/_search
{
"query":{
"bool": {
"must":{
"match_all":{}
},
"filter": {
"term": {
"title": "Python"
}
}
}
}
}

#数据在入库的时候就都已经进行大小写处理了,所以现在用term查询的时候是找不到需要的内容的,但是用match的时候就可以了

#查看分析器的解析结果
GET _analyze
{
"analyzer": "ik_max_word",
"text":"python网络"
}
#bool过滤查询,可以组合过滤查询

# select * from testdb where (salary=20 OR title=Python) AND (salary != 30)
# 查询薪资等于20k或者工作为python的工作,排除价格为30k的

GET lagou/testdb/_search
{
"query":{
"bool": {
"should":[
{"term": {"salary": }},
{"term": {"title": "python"}}
],
"must_not": [
{"term":{"salary":}},
{"term":{"salary":}}
]
}
}
} x
#嵌套查询

#select * from testdb where title="python" or ( title="django" AND salary=30)

GET lagou/testdb/_search
{
"query":{
"bool": {
"should":[
{"term": {"title": "python"}},
{"bool": {
"must": [
{"term": {"title": "django"}},
{"term": {"salary": }}
]
}}
]
}
}
}
#过滤空和非空

#建立测试数
#select tags from testdb2 where tags is not NULL

GET lagou/testdb2/_bulk
{"index":{"_id":""}}
{"tags":["salary"]}
{"index":{"_id":""}}
{"tags":["salary","python"]}
{"index":{"_id":""}}
{"other_fields":["some data"]}
{"index":{"_id":""}}
{"tags":null}
{"index":{"_id":""}}
{"tags":["salary",null]}
#处理null空值的方法

#select tags from testdb2 where tags is not NULL

GET lagou/testdb2/_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "tags"
}
}
}
}
}

利用kibana插件对Elasticsearch进行bool查询的更多相关文章

  1. 利用kibana插件对Elasticsearch查询

    利用kibana插件对Elasticsearch查询 Elasticsearch是功能非常强大的搜索引擎,使用它的目的就是为了快速的查询到需要的数据. 查询分类: 基本查询:使用Elasticsear ...

  2. 利用kibana插件对Elasticsearch进行映射

    映射(mapping) 映射是创建索引的时候,可以预先定义字段的类型以及相关属性 Elasticsearch会根据JSON源数据的基础类型去猜测你想要的字段映射.将输入的数据变成可搜索的索引项.Map ...

  3. 利用kibana插件对Elasticsearch进行批量操作

    #############批量获取################# #获取所有数据 GET _mget { "docs": [ {"_index":" ...

  4. 利用kibana插件对Elasticsearch进行文档和索引的CRUD操作

    #添加索引PUT lagou { "settings": { "index": { , } } }#查看 索引设置 GET lagou/_settings GE ...

  5. 使用kibana来进行ElasticSearch的信息查询检索

    大家经常会听到使用ELK搭建日志管理平台.完成日志聚合检索的功能,那么这个平台到底是个什么概念,怎么搭建,怎么使用呢? ELK包括ElasticSearch(数据存储.快速查询).logstash(日 ...

  6. 利用Logstash插件进行Elasticsearch与Mysql的数据

    Logstash与Elasticsearch的安装就不多说了,我之前有两篇文章写的比较详细了ElasticSearch + Logstash + Kibana 搭建笔记 和 Filebeat+Logs ...

  7. kibana和ElasticSearch的信息查询检索

    使用kibana来进行ElasticSearch的信息查询检索 大家经常会听到使用ELK搭建日志管理平台.完成日志聚合检索的功能,那么这个平台到底是个什么概念,怎么搭建,怎么使用呢? ELK包括Ela ...

  8. 利用kibana学习 elasticsearch restful api (DSL)

    利用kibana学习 elasticsearch restful api (DSL) 1.了解elasticsearch基本概念Index: databaseType: tableDocument: ...

  9. Elasticsearch索引的操作,利用kibana 创建/删除一个es的索引及mapping映射

    索引的创建及删除 1. 通过索引一篇文档创建了一个新的索引 .这个索引采用的是默认的配置,新的字段通过动态映射的方式被添加到类型映射. 利用Kibana提供的DevTools来执行命令,要创建一个索引 ...

随机推荐

  1. counter counters 计数器

    counter-reset counter-reset:counter1 /* 重置计数器为 0 */ counter-reset:counter1 0 /* 重置计数器为 0 */ counter- ...

  2. 【6】学习C++之类的实例化及访问

    类就像一张图纸,如果不去实例化,制造出相应的零件,用处就不会那么大. 实例化类有两种,一个是从栈中实例化对象: class TV { public: ]; int type; void changeV ...

  3. spring对bean的管理细节

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  4. ViewPager刷新原理

    ViewPager的数据是通过PageAdapter来装载的,刷新数据的方法有以下: 调用adapter.notifyDataSetChanged(); 刷新控件,但是要覆盖PagerAdapter的 ...

  5. The SetStack Computer UVA - 12096

    题意:初始状态的栈内包含一个空集,对栈进行一下操作: PUSH:向栈内压入一个空集 DUP:复制栈顶,并压入栈内 UNION:将栈顶端两个集合出栈,并将两个元素的并集入栈 INTERSECT:将栈顶端 ...

  6. 机器学习-kmeans的使用

    import numpy as np import pandas as pd import matplotlib from matplotlib import pyplot as plt %matpl ...

  7. TypeScript 错误property does not exist on type Object

    TypeScript 错误property does not exist on type Object 在TypeScript中如果按JS的方式去获取对象属性,有时会提示形如Property 'val ...

  8. Appnium-API-Status

    Status Java:// TODO Python:selenium.webdriver.common.utils.is_url_connectable(port) Description Retu ...

  9. TCP-IP详解笔记8

    TCP-IP详解笔记8 TCP超时与重传 下层网络层(IP)可能出现丢失, 重复或丢失包的情况, TCP协议提供了可靠的数据传输服务. TCP启动重传操作, 重传尚未确定的数据. 基于时间重传. 基于 ...

  10. django orm 及常用参数

    一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...