ElasticSearch的matchQuery与termQuery
matchQuery与termQuery区别:
matchQuery:会将搜索词分词,再与目标查询字段进行匹配,若分词中的任意一个词与目标字段匹配上,则可查询到。
termQuery:不会对搜索词进行分词处理,而是作为一个整体与目标字段进行匹配,若完全匹配,则可查询到。
各种term query的 QueryBuild 构建 官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html
1、term query 分词精确查询,查询hotelName 分词后包含 hotel的term的文档
QueryBuilders.termQuery("hotelName","hotel")
2、terms Query 多term查询,查询hotelName 包含 hotel 或test 中的任何一个或多个的文档
QueryBuilders.termsQuery("hotelName","hotel","test")
3、range query
范围查询 查询hotelNo
QueryBuilders.rangeQuery("hotelNo") .gt("10143262306") //大于 10143262306 .lt("101432623062055348221")//小于 101432623062055348221 .includeLower(true) //包括下界 .includeUpper(false); //包括上界
4、 exist query 查询字段不为null的文档 查询字段address 不为null的数据
QueryBuilders.existsQuery("address")
5、missing query
返回 没有字段或值为null或没有值的文档
java client 该方法已经标记为过时,推荐用exist代替 如下 existsQuery BoolQueryBuilder#mustNot(QueryBuilder) QueryBuilders.missingQuery("accountGuid") 等同QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery("accountGuid"));
6.prefix query 匹配分词前缀 如果字段没分词,就匹配整个字段前缀
QueryBuilders.prefixQuery("hotelName","花园")
7、wildcard query 通配符查询,支持* 任意字符串;?任意一个字符
QueryBuilders.wildcardQuery("channelCode","ctr*") QueryBuilders.wildcardQuery("channelCode","ctr?")
8、regexp query 正则表达式匹配分词,正则表达式自己写吧 略
9、 fuzzy query 分词模糊查询,通过增加fuzziness 模糊属性,来查询term 如下 能够匹配 hotelName 为 te el tel前或后加一个字母的term的 文档 fuzziness 的含义是检索的term 前后增加或减少n个单词的匹配查询,
QueryBuilders.fuzzyQuery("hotelName", "tel").fuzziness(Fuzziness.ONE)
10、type Query 含义不是很理解,通过代码也还暂未理解 英文原文:Filters documents matching the provided document / mapping type.
QueryBuilders.typeQuery("channelCode")
11、idx Query 根据ID查询
QueryBuilders.idsQuery().addIds("exchange_operate_monitor_db$32293","exchange_operate_monitor_db$32294")
ElasticSearch的matchQuery与termQuery相关推荐
- 关于全文搜索elasticsearch中matchQuery和termQuery的区别
如题,本文主要讲关于全文搜索elasticsearch中matchQuery和termQuery的区别,附带一点其它查询用法. 准备工作,下载相关jar包,本文所有jar包列表: apache-log ...
- es的query及filter
为什么80%的码农都做不了架构师?>>> ##query与filter的合并 Queries and filters merged 将filter的api列为deprecate ...
- Elasticsearch安装及SpringBoot整合ElasticSearch
一.Elasticsearch基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的 1).对比关系 索引库(indices)->Da ...
- ElasticSearch详细笔记( 从入门到入土)
文章目录 1.ElasticSearch概述 1.1 Elasticsearch 是什么 1.2 全文搜索引擎 1.3 Elasticsearch And Solr 2. ElasticSearch安 ...
- ElasticSearch理论及实操
1. 全文检索 1.1 全文检索流程 主要分两大部分:创建索引和查询索引 1.2 全文检索概念 在MySQL中查询某条记录使用的一定是列名,也就是在创建数据库时已经写死的列名名称.在查询时,使用该列名 ...
- 爬梯:ElasticSearch分布式搜索引擎
学习资料:狂神说 ElactisSearch 7.6.2 ElasticSearch 分布式搜索引擎 1. 概述 1.1 ELK ELK是ElasticSearch.Logstash.Kibana三大 ...
- ElasticSearch Java Api(四) -删除索引
删除可以是删除整个索引库,也可以根据文档id删除索引库下的文档,还可以通过query查询条件删除所有符合条件的数据. 一.删除整个索引库 下面的例子会删除indexName索引: DeleteInde ...
- Elasticsearch就是这么简单
一.前言 最近有点想弄一个站内搜索的功能,之前学过了Lucene,后来又听过Solr这个名词.接着在了解全文搜索的时候就发现了Elasticsearch这个,他也是以Lucene为基础的. 我去搜了几 ...
- 使用ElasticSearch进行可扩展搜索
当我上高中时, google只是一个名词,代表了一个非常庞大的数字. 今天,我们有时将google用作动词,与在线浏览和搜索同义,并且我们也用它来指代同名公司. 通常会调用" Papa Go ...
最新文章
- 使用SQL Server维护计划实现数据库定时自动备份
- 错误602,未能在sysindexes中找到数据库 的解决办法
- 一篇演讲 By 浙江大学数学系主任刘克峰
- Mysql函数示例(如何定义输入变量与返回值)
- Kattis - icpccamp ICPC Camp(二分+贪心)
- spring RedisTemplate 缓存
- 【优化算法】广义正态分布优化算法(GNDO)【含Matlab源码 1531期】
- redis 多进程_Redis 持久化
- 字符串缓冲区和字符串构造器
- Android程序中如何启动浏览器
- Oracle数据库岗位,Oracle数据库岗位职责
- Git 常用记录(删除commit操作/挑拣/删除仓库)
- 计算机英语趣味知识,看段子,学英语,懂点计算机知识才能看懂哦!
- Dreamweaver制作简易的拼图游戏教程
- springboot企业人力资源管理系统毕业设计源码291816
- Kotlin学习(4):编码规范
- 模拟IC芯片设计开发的流程
- Web渗透测试----1、Web安全学习导图
- 大众车功能码与地址码大全(英/中)
- 递归算法的空间复杂度
热门文章
- JNCIE vs CCIE[战况不断更新]
- android8.1模拟器 黑屏,Win 8/8.1系统使用天天安卓模拟器无法开启虚拟化解决方法...
- 轮播图Swiper小白点(分页器)与图片不同步即失效问题Vue
- 2014年苹果十大事件回顾:得大过失亦或是反之?
- 如何自制DIY电视天线【方法】
- 3721病毒杀除方法详解
- 什么是http协议(二)
- 深拷贝和浅拷贝开发常用方法总结
- 移动端点击拨打电话功能
- win7打印机不显示服务器错误,打印机连接不上,教你win7连接打印机提示错误0x00000002的解决教程...