【ElasticSearch】:QueryDSL
Search API
URI Search
Response Body Search
Query DSL
Response Body Search使用Query DSL语句,相对URI Search功能更加灵活强大。
Query DSL是基于JSON定义的查询语言,主要包含如下2种类型:
Query DSL--字段类查询
term精确查询,match全文检索,range范围查询
Query DSL--字段类查询--match全文检索
match查询对输入文本分词后,做全文检索。
如果match多个单词,单词间空格分隔,是or关系查询
使用"operator":"and"来表示单词间是and关系查询
输入了多个单词,任意minimum_should_match个被匹配到就查询出来。
Query DSL--字段类查询--match_phrase短语匹配
match_phrase短语匹配,查询确切的phrase,在对查询字段定义了分词器的情况下,会使用分词器对输入进行分词,然后返回满足下述两个条件的document:
1.match_phase中的所有term都出现在待查询字段之中。
2.待查询字段之中的所有term都必须和match_phase具有相同的顺序。
使用slop参数,可以控制match_phrase间隔。
Query DSL--字段类查询--term精确匹配
term把输入作为一个整体单词,不对输入做分词处理,做精确匹配。
terms把输入的多个单词,分别作为一个个整体单词,不对输入做分词处理,做精确匹配。
Query DSL--范围查询--数值类型
Query DSL--范围查询--日期时间类型
对日期时间做范围查询,输入支持绝对日期时间,也支持相对当前时间的相对日期时间。
Query DSL--Bool查询
支持更复杂的组合查询。
Query DSL--Bool查询--Filter
Query DSL--Bool查询--Must
Query DSL--Bool查询--Must_Not
Query DSL--Bool查询--Must_Not
回顾与对比:
query:检索,除了确定文档是否匹配外,查询子句还计算了表示文档与其他文档相比匹配程度的_score;得分越高,相关度越高--更相关的文件,在搜索排名更高。适用于全文检索
filter:过滤器,在搜索中没有额外的相关度排名,适用于完全精确匹配,范围检索。
6.X版本已经去除了单独的filter过滤器,与query组合使用。
- query字段里面内容需要全文检索的放must,字段里面内容只需要精确匹配过滤出来的放filter
- 输入数据需要文本分词用match,输入数据不需要文本分词用term。
- 全文检索以及任何使用相关性评分的场景使用query检索,除此之外的其他使用filter过滤器过滤。
另外2个我们生产中常用的查询API:
_count:
不看返回结果,只想看匹配结果数量用_count。
_souce:
只返回_source中的指定字段,节约网络开销。
最新文章
- Java_I/O输入输出_实现当用户输入姓名和密码时,将每一个姓名和密码加在文件中,如果用户输入done,就结束程序。
- [转载]http协议 文件下载原理及多线程断点续传
- HTML5商城开发三 jquery 星星评分插件
- [转]考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
- C++字符转码
- 使用spring @Scheduled注解执行定时任务
- algorithm@ Matrix fast power
- HTML5 Canvas核心技术—图形、动画与游戏开发.pdf2
- 根据控件Id得到控件
- Struts2 学习笔记20 类型转换part2 写自己的转换器
- JavaScript弹出框
- VIM 用正则表达式
- 数据库 -->; 5种关系型数据库比较
- [Swift]LeetCode747. 至少是其他数字两倍的最大数 | Largest Number At Least Twice of Others
- POJ-1679 The Unique MST (判断最小生成树的唯一性)
- HTML响应式布局实现详解
- How to configure Samba Server share on Debian 9 Stretch Linux
- tomact启动报错org.apache.jasper.EmbeddedServletOptions.<;init>; The scratchDir you specified:xxx is unusable.
- 【asp.net Core 2.0 初步探索】
- jquery checkbox选框操作
热门文章
- syslog、日志服务器安装、卸载详解、如何安装和卸载EventLog Analyzer
- 27 isinstance与issubclass、反射、内置方法
- 【转】python 2.6.6升级到python 2.7.x版本的方法
- 844. Backspace String Compare
- FMS是什么?
- BZOJ 2120 数颜色 (带修莫队)
- 20155205 《Java程序设计》实验四 Android程序设计
- SAX vs. DOM (Event vs. Tree)
- 7-12 How Long Does It Take
- 1.gil全局解释器锁, 2. 死锁与递归锁 3. 信号量 4. Event事件 5. 线程queue