利用kibana插件对Elasticsearch进行bool查询

#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":1}}
{"salary":10,"title":"python"}
{"index":{"_id":2}}
{"salary":20,"title":"Scrapy"}
{"index":{"_id":3}}
{"salary":30,"title":"Django"}
{"index":{"_id":4}}
{"salary":40,"title":"Elasticsearch"}
#简单过滤查询

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

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

#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": 20}},
        {"term": {"title": "python"}}
        ],
        "must_not": [
          {"term":{"salary":30}},
          {"term":{"salary":10}}
        ]
    }
  }
} 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": 30}}
          ]
        }}
        ]
    }
  }
} 
#过滤空和非空

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

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

#select tags from testdb2 where tags is not NULL

GET lagou/testdb2/_search
{
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "tags"
        }
      }
    }
  }
}
时间: 2024-11-04 05:11:42

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

利用kibana插件对Elasticsearch查询

Elasticsearch是功能非常强大的搜索引擎,使用它的目的就是为了快速的查询到需要的数据. 查询分类: 基本查询:使用Elasticsearch内置查询条件进行查询 组合查询:把多个查询组合在一起进行复合查询 过滤:查询同时,通过filter条件在不影响打分的情况下筛选数据 创建索引 PUT lagou { "mappings": { "job":{ "properties": { "title":{ "sto

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

#############批量获取################# #获取所有数据 GET _mget { "docs": [ {"_index":"testdb", "_type":"job1", "_id":1 }, {"_index":"testdb", "_type":"job2", "_

[Elasticsearch] 全文搜索 (三) - match查询和bool查询的关系,提升查询子句

match查询是如何使用bool查询的 现在,你也许意识到了使用了match查询的多词查询只是简单地将生成的term查询包含在了一个bool查询中.通过默认的or操作符,每个term查询都以一个k语句被添加,所以至少一个should语句需要被匹配.以下两个查询是等价的: { "match": { "title": "brown fox"} } { "bool": { "should": [ { "

elasticsearch安装kibana插件

1.下载 2.解压将解压后的文件放到D:\DevTools\kibana-4.6.0-windows-x86路径下 3.修改配置文件D:\DevTools\kibana-4.6.0-windows-x86\config目录下的kibana.yml,elasticsearch.url: ip与elasticsearch配置相同 4.启动 双击D:\DevTools\kibana-4.6.0-windows-x86\bin目录下的kibana.bat默认连接的是本机elasticsearch,可在配

Elasticsearch 常用基本查询

安装启动很简单,参考官网步骤:https://www.elastic.co/downloads/elasticsearch 为了介绍Elasticsearch中的不同查询类型,我们将对带有下列字段的文档进行搜索:title(标题),authors(作者),summary(摘要),release date(发布时间)以及number of reviews(评论数量),首先,让我们创建一个新的索引,并通过bulk API查询文档: 为了展示Elasticsearch中不同查询的用法,首先在Elast

ElasticSearch结构化查询

ElasticSearch结构化查询 Elasticsearch 提供了丰富的查询过滤语句,而有一些是我们较常用到的. 现在我们快速的介绍一下 这些最常用到的查询过滤语句. term 过滤 term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed的字符串(未经分析的文本数据类型): { "term": { "age": 26 }} { "term": { "date": "2014-09-0

利用AdvancedNewFile插件创建新的文件

与ctrl+N创建新的文件不同的是,利用AdvancedNewFile插件你可以直接创建并修改保存路径,不用保存之后在修改路径. 第一步,ctrl+shift+P 输入pci模糊查询package control install package 第二步:输入adv 找到AdvancedNewFile插件 点击安装. 第三步:安装完成之后,利用 ctrl+alt+N 快捷键,在编辑器下方输入框 输入你想创建的文件以及保存路径,你也可以不改路径,直接保存在默认路径,只需写你想要的文件.如图:

ElasticSearch 常用的查询过滤语句

query 和  filter 的区别请看: http://www.cnblogs.com/ghj1976/p/5292740.html    Filter DSL   term 过滤 term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型): { "term": { "age":    26           }} { "term": { "date":   &

云上树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示

云上树莓派(1):环境准备 云上树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 1. 传感器安装及配置 1.1 DHT22 安装 DHT22 是一款温度与湿度传感器,它有3个针脚,左边的第一个引脚(#1)为3-5V电源,第二个引脚(#2)连接到数据输入引脚,最右边的引脚(#4)接地. 而树莓派3B 一共有40个针脚(GPIO,General Purpose I/O Ports,通用输入/输出端口),只需要将传感器的3个引脚接入板子上的合适引脚即可.我的连接是 1 -