Filter查询
Filter查询
filter是不计算相关性的,同时可以cache,因此,filter速度要块于query
数据准备
POST /lib3/user/_bulk
{"index":{"_id":1}}
{"price":40,"itemID":"ID100123"}
{"index":{"_id":2}}
{"price":50,"itemID":"ID100124"}
{"index":{"_id":3}}
{"price":25,"itemID":"ID100125"}
{"index":{"_id":4}}
{"price":30,"itemID":"ID100126"}
{"index":{"_id":5}}
{"price":null,"itemID":"ID100127"}
# 查看mapping
GET /lib3/_mapping
{
"lib3": {
"mappings": {
"user": {
"properties": {
"itemID": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"price": {
"type": "long"
}
}
}
}
}
}查询
GET /lib3/user/_search
{
"query": {
"bool": {
"filter": {
"term": {
"price": 40
}
}
}
}
}
# 查询多个值
GET /lib3/user/_search
{
"query": {
"bool": {
"filter": {
"terms": {
"price": [25,40]
}
}
}
}
}
# 查询不出来,因为itemID text类型并且进行了倒排索引,分词后转为小写存储
GET /lib3/user/_search
{
"query": {
"bool": {
"filter": {
"term": {
"itemID": "ID100124"
}
}
}
}
}
# 改为小写
GET /lib3/user/_search
{
"query": {
"bool": {
"filter": {
"term": {
"itemID": "id100124"
}
}
}
}
}
# 查询结果
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0,
"hits": [
{
"_index": "lib3",
"_type": "user",
"_id": "2",
"_score": 0,
"_source": {
"price": 50,
"itemID": "ID100124"
}
}
]
}
}
bool过滤查询
可以实现组合过滤查询
格式
{
"bool":{"must":[],"should":[],"must_not":[]}
}must:必须满足的条件 --and
should:可以满足也可以不满足的条件 --or
must_not:不需要满足的条件 --not
GET /lib3/user/_search
{
"query": {
"bool": {
"should": [
{"term": {"price": 25}},
{"term": {"itemID": "id100123"}}
]
, "must_not": [
{"term": {
"price": 40
}}
]
}
}
}
# 还可以嵌套
GET /lib3/user/_search
{
"query": {
"bool": {
"should": [
{ "term": {"price": 25}},
{
"bool": {
"must": [
{"term":{"itemID":"id100123"}},
{"term":{"price":40}}
]
}
}
]
}
}
}
范围过滤
gt: >
lt: <
gte: >=
lte: <=
# 范围过滤
GET /lib3/user/_search
{
"query": {
"bool": {
"filter": {
"range": {
"price": {
"gt": 25,
"lt": 50
}
}
}
}
}
}
# 非空过滤
GET /lib3/user/_search
{
"query": {
"bool": {
"filter": {
"exists": {
"field": "price"
}
}
}
}
}
Filter查询的更多相关文章
- Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询
Lucene在6.0版本之后彻底废除了Filter的使用,采用BooleanQuery来实现Filter的功能,核心代码如下: TermQuery termQuery = new TermQuery( ...
- Django的filter查询
Django的filter查询 name__contains表示精确大小写的模糊查询 使用name__icontains表示忽略大小写 year_count = DownloadFile.object ...
- Elasticsearch(5) --- Query查询和Filter查询
Elasticsearch(5) --- Query查询和Filter查询 这篇博客主要分为 :Query查询和Filter查询.有关复合查询.聚合查询也会单独写篇博客. 一.概念 1.概念 一个查询 ...
- HBase中多Filter查询示例
在Hbase查询中有时需要用到多个Filter关联的查询. 代码如下: ArrayList<Filter> listForFilters = new ArrayList<Filter ...
- EXTJS4扩展实例:如何使用filter查询treepanel
我们在使用普通的store时,extjs提供了filterBy,filter等多种方法来过滤数据达到查询效果,但在treepanel中的streeStore却没有实现这个查询,于是,就有了这篇文章. ...
- Django object filter查询[转]
用PYTHON ,DJANGO 做站,在通常的情况下,需要用到 orM 的查询方法,比如object.filter(tag__contains='keywords').... 在这种情况下,如果你跟踪 ...
- Dynamics 365 Web Api之基于single-valued navigation property的filter查询
本篇要讲的是dynamics 新版本中web api的一个改进功能,虽然改进的很有限,但至少是改进了. 举个例子,我们现在知道联系人的名字vic,我们想找出客户记录中主要联系人名字为vic的所有客户, ...
- LDAP的filter查询详解
转: 等于(EQUAL TO): =大于等于(Greater than): >=小于等于(Less than): <=通配符(wildcard): * 逻辑运算符:逻辑与(log ...
- 【转】elasticsearch的查询器query与过滤器filter的区别
很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单- 当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...
随机推荐
- error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 错误的解决方法
一些函数定义中,在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型:但是vs2008/vs2010不支持默认整型,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用排除44 ...
- refused to Connection
两种情况: .数据库账号密码错误 .mysql挂了
- SQL语句的三大类
数据定义语言(DDL Data Defination Language):用于创建和定义数据库对象,并且将对这些对象的定义保存到数据库字典中,通过DDL语句可以创建数据库对象.修改数据库对象.删除数据 ...
- java指针与引用(转载)
大家都知道java和C#中没有指针这个概念.但是也导致了编程中常常忽略了对象与引用的区别,难道java真的没有指针吗?句柄是什么?变量地址在哪里?没有地址是不可能的,关键是java中如何避免了指针这个 ...
- 高级设计总监的设计方法论——5W1H需求分析法 KANO模型分析法
本期开始进入设计方法论的学习,大湿自己也是边学边分享,算是巩固一遍吧: 另外这些理论基本都是交叉结合来应用于工作中,我们学习理论但不要拘泥于理论的框架中,掌握后要灵活运用一点- 这些理论一部分来自于我 ...
- python轻量级orm
python下的orm使用SQLAlchemy比较多,用了一段时间感觉不顺手,主要问题是SQLAlchemy太重,所以自己写了一个orm,实现方式和netsharp类似,oql部分因为代码比较多,没有 ...
- DB2序列和主键自增长
1.把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: create table customers(id int a ...
- delphi 中如何处理“幽灵”、“熔断”?(转载)
原始连接:http://dannywind.nl/delphi/meltdown-spectre-and-delphi/ Meltdown, Spectre and Delphi Don’t pani ...
- MySQL批量修改表前缀
error_reporting(0); $old_pre = 'tdr_'; // 原表前缀 $new_pre = 'db_'; // 新表前缀 // 配置连接 $db = new mysqli('1 ...
- Java基本数据类型与包装类、字符串之间的转换
基本数据类型和包装类的转换:1.装箱:基本数据类型→对应包装类,可分为手动装箱和自动装箱.2.拆箱:包装类→对应基本数据类型,可分为手动拆箱和自动拆箱. 例子:手动装箱:Integer iObj=ne ...