利用kibana插件对Elasticsearch进行bool查询,,#bool查询#老版
利用kibana插件对Elasticsearch进行bool查询,,#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" } } } }}
利用kibana插件对Elasticsearch进行bool查询
相关内容
- Flask-Migrate的作用以及安装,,1.因为采用db.c
- numpy里*与dot与multiply,,一、* dot()
- Python - 命令式编程与符号编程,,原文链接:https
- 初级python编程入门看过来(Python就业工资有多少),
- 7、python基本数据类型之散列类型,,前言:python的
- Python学习日记 3/9,,Part 1 二进制
- windows 系统下python 模块安装,,windows下安装
- 为什么Python课程这么抢手?值得学习吗?,,说起编程行
- python和sudo python的区别,,1)解决2(1)中的
- python快速教程,,网上有个人写的pyt
评论关闭