总记录数

POST trade_prod_dy_*/_count
{"query": {"range": {"created":{"gte": "1646760441000"}}}
}

模糊搜索

-- 对这个查询词不进行分词,必须完全匹配查询词才可以作为结果显示
{"query" : {"match_phrase" : {"字段" : "搜索值"}}
}-- 间隔1个单词以内也算是匹配的结果
{"query": {"match_phrase": {"product_name" : {"query" : "PHILIPS HX6730","slop" : 1}}}
}-- 类似 Google 搜索框,关键字输入推荐
-- max_expansions用来限定最多匹配多少个term,优化性能
{"query": {"match_phrase_prefix": {"product_name": "PHILIPS HX","slop": 5,"max_expansions": 20}}
}-- 对查询的词进行分词,再进行匹配,match_phrase性能没有match好
{"query": {"match": {"title": "串"}},"from": 10,"size": 10
}
-- 指定字段模糊搜索,从 title 和 tag 属性中去找
{"query": {"multi_match": {"query": "串串","fields": [ "title", "tag"]}}
}

不分词匹配

{"query":{"multi_match":{"query":"aa","type" : "phrase_prefix","fields":["content_text"]}}
}--50%命中其中两个词就返回
{"query": {"match": {"product_name": {"query": "java 程序员 书 推荐","minimum_should_match": "50%"}}}
}-- query_string 语法查询,全局搜索
{"query": {"query_string": {"query": "(水煮肉 and 回锅肉) or 西葫芦"}}
}

filter查询

-- filter查询,必须相等,过滤
{"query": {"bool": {"filter": {"term": {"id": "13"}}}}
}-- bool使用terms
{"query": {"bool": {"must": [{"terms":{"node_standard_code":[1001,1002,1004,1007]}}]}}
}{"query": {"bool": {"filter": {{"terms":{"node_standard_code":[1001,1002,1004,1007]}}}}}
}

范围查询

-- 大于或小于,query 和 filter 一起使用的话,filter 会先执行
-- filter,只查询出搜索条件的数据,不计算相关度分数
-- query,查询出搜索条件的数据,并计算相关度分数,按照分数进行倒序排序
-- filter(性能更好,无排序),无需计算相关度分数,也就无需排序,内置的自动缓存最常使用查询结果的数据
{"query": {"bool": {"must": {"match": {"product_name": "toothbrush"}},"filter": {"range": {"price": {"gt": 400,"lt": 700}}}}}
}-- terms 用法,类似于数据库的 in
{"query": {"constant_score": {"filter": {"terms": {"product_name": ["toothbrush","shell"]}}}}
}

空值查询

-- tags IS NULL
-- 已废弃
GET /my_index/posts/_search
{"query" : {"constant_score" : {"filter": {"missing" : { "field" : "tags" }}}}
}-- 新版本查询
GET ent_search/_search
{"_source": ["eid","ent_name"], "query": {"bool": {"must_not": {"exists": {"field": "enttype_code"}}}}
}-- tags IS NOT NULL
GET /my_index/posts/_search
{"query" : {"constant_score" : {"filter" : {"exists" : { "field" : "tags" }}}}
}

前缀查询

-- 前缀查询tag LIKE 'aa%'
GET /my_index/address/_search
{"query": {"prefix": {"postcode": "W1"}}
}-- 全匹配查询:LIKE %word%
{"query": {"wildcard": {"affair_list.affairs_name.keyword": {"value": "*%*"}}}
}-- 特殊字符问题
{"query": {"wildcard": {"affair_list.affairs_name.keyword": {"value": "*\\**"}}}
}

函数使用

-- 模拟数据库的LOCATE函数
{"query": {"bool": {"filter": {"script": {"script": "'10010001'.startsWith(doc['code.keyword'].value)"}}}}
}
#if ($locateCode != $null && '' != $locateCode){"script": {"script": "'$locateCode'.startsWith(doc['code.keyword'].value)"},
#end

或者或其它查询

-- bool查询,must:是类似and,must_not:不等于,should:类似or
{"query" : {"bool": {"must": [{"term": {"user_id": 22}},{"term": {"delete_mark": false}},{"exists":{"field":"node_end_time"}}],"must_not":[{"term": {"node_type": 4}},{"term": {"node_type": 31}},{"term": {"node_type": 2}},{"term": {"node_standard_code": 1008 }}  ],"filter": {"range": {"modify_date": {"gt": 1596195050000}}}}}
}
-- should 有一个特殊性,如果组合查询中没有 must 条件,那么 should 中必须至少匹配一个
-- 我们也还可以通过 minimum_should_match 来限制它匹配更多个
{"query": {"bool": {"should": [{"match": {"product_name": "java"}},{"match": {"product_name": "程序员"}},{"match": {"product_name": "书"}},{"match": {"product_name": "推荐"}}],"minimum_should_match": 3}}
}-- 实现数据库的OR条件
{"query": {"bool": {"fileter":[{"range":{"date.keyword":{"gt":"20170101","lt":"20170201"}}}],"must":[{"bool":{"should": [{"term": {"A.keyword": "0000000000"}},{"term": {"B.keyword": "0000000001"}}]}}]}}
}

脚本使用

-- 文档内字段对比
{"query":{"script": {"script": {"inline": "doc['rr_mark_id'].value - doc['mr_mark_id'].value == 0","lang": "painless"}}}
}GET hockey/_search
{"query": {"match_all": {}},"sort": {"_script": {"type": "string","order": "asc","script": {"lang": "painless","inline": "doc['first.keyword'].value + ' ' + doc['last.keyword'].value"}}}
}

sort排序

{"query" : {"bool": {"must": [{"term": {"user_id": $userId}},{"term": {"delete_mark": false}},{"exists":{"field":"node_end_time"}}]}},"sort":[{"mark_id":"asc"},{"sort_code.keyword":"desc"}]
}-- 多字段排序
[{"sort_code": "asc"},{"sort_code": {"order":"desc","missing": 0,"unmapped_type": "long"}}
]-- 空字段排序,返回指定字段
#if ($sortList != $null && !$sortList.isEmpty())
,"sort":[#if ($sortList.affairsServiceName != $null){"affairs_service_name.keyword":#if(${sortList.affairsServiceName}) "asc" #else "desc" #end},#end#if ($sortList.sortCode != $null){"sort_code":{"order":#if(${sortList.sortCode}) "asc" #else "desc" #end,"missing": "0"}},#end#if ($sortList.sortCode != $null){"sort_code":{#if(${sortList.sortCode}) "order":"asc", "missing": "_first" #else "order":"desc", "missing": "_last" #end}},#end{}
]
#end
,"_source" : ["pk_value"]

BBoss使用

-- IF、FOREACH使用
#if ($codes != $null && $codes.size() > 0){"bool": {"should": [#foreach($code in $codes)#if ($velocityCount > 0),#end{"prefix": {"code.keyword": "$code"}}#end]}},
#end-- 逗号问题
{"query": {"bool" : {"must": [{"terms":{"affairs_id":[#foreach($affairsId in $affairsIds)#if ($velocityCount > 0), $affairsId#else$affairsId#end#end]}}]}},"size" : 1000,"_source" : ["affairs_id" , "affairs_name"]
}

ES常用查询语法汇总相关推荐

  1. ES 常用查询命令汇总

    ES 常用查询命令汇总 ES 常用查询命令汇总 一._cat操作 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行 curl -XGET localhost:920 ...

  2. mysql+group+desc_lt;导图gt;Mysql常用查询语法

    普通查询 查看整个表格式:select * from 表名; 示例:select * from students; 查询指定字段格式select 字段名1,字段名2 from 表名; 示例select ...

  3. 【ES知识】ES基础查询语法一览

    大家好,我是老坛. 更多优质文章资源请关注同名公众号:老坛聊开发 Elasticsearch是一个分布式的RESTful 风格的搜索和数据分析引擎,它使用方便,查询速度快,因此也被越来越多的开发人员使 ...

  4. Solr常用查询语法笔记

    1.常用查询 q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符 ...

  5. ES各种查询语法及响应结果

    目录 查询 创建 删除请求 1. 删除索引 数据类型 一.创建索引 1.1 创建book_test索引 1.2 查看索引映射 1.3 添加文档记录 1.4 查询文档 1.6 删除文档中某一条数据 二. ...

  6. Kibana 使用 KQL 查询语法-kibana 常用查询语法

    Kibana 查询语言 (KQL) 是一种使用自由文本搜索或基于字段的搜索过滤 Elasticsearch 数据的简单语法. KQL 仅用于过滤数据,并没有对数据进行排序或聚合的作用. KQL 能够在 ...

  7. SQL常用查询语句汇总

    SQL查询关键字为SELECT,常用查询语句代码及结果如下(本文使用MySQL数据库管理系统): -- 1检索单个列 SELECT prod_name FROM Products;-- 2检索多个列 ...

  8. Django模型系统之常用查询语法及进阶

    一般操作 常用操作 <1> all(): 查询所有结果<2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象<3> get(**kwargs ...

  9. ES常用查询操作学习总结(13种)

    目录 1.id和ids id ids 2.match查询 查询所有 查看分词效果 1.将<浙江省>进行中文分词<浙江><浙江省><省>2.将分词结果逐一 ...

最新文章

  1. 理解MapReduce哲学
  2. Nature子刊:王四宝组揭示按蚊肠道共生菌抗疟的分子机制
  3. javascript对象和json字符串之间转换的问题
  4. python 定时执行 爬虫 模块_【Python】定时执行网站爬虫
  5. 微型php框架 include/mysql.class.php
  6. 最接近的三数之和Python解法
  7. .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 )...
  8. c语言幼儿园积木游戏,幼儿园《积木游戏》课件【三篇】
  9. Find Minimum in Rotated Sorted Array
  10. Android-TextView跑马灯效果
  11. IQ不平衡补偿 Lowdin算法
  12. Asp.net2.0下的表单验证Cookieless属性
  13. 搭建视频网站的技术方案
  14. 支付宝AI大幅提升细粒度图像分类识别精度,一眼看穿万物细微差异
  15. linux环境判断nginx是否已经启动
  16. 资本大佬们背后鲜为人知的秘史3
  17. Python学习第二课-----绘制股票K线图(不使用mpl_finance包)
  18. 帝国cms二次开发留言板自定义字段教程
  19. 两向量叉乘的计算公式_向量的数量积和向量积怎么算?
  20. 3.计蒜客ACM题库.A1597 结果填空:年龄

热门文章

  1. 【Addicted TO ROS】ROS工程结构
  2. Zookeeper+Dubbox 环境搭建日记
  3. EPSON RX8010SJ RTC 调试笔记之六, 计时更新中断功能 (Time Update Interrupt Function)
  4. OPPOR9Splus_官方线刷包_救砖包_解账户锁
  5. 《ANSYS Workbench有限元分析实例详解(静力学)》——导读
  6. 安装LaTeX 安装失败总是说goodbye问题解决
  7. oracle数据库快捷键使用失败的处理
  8. 小操作——硬盘分区的操作教程
  9. Android KTX与Kotlin Android Extensions
  10. 做自媒体短视频,什么时间发布流量高?大周给你4个建议