012-elasticsearch5.4.3【五】-搜索API【一】搜索匹配所有matchAllQuery、全文查询[matchQuery、multiMatchQuery、commonTermsQuery、queryStringQuery、simpleQueryStringQuery]
2023-09-14 09:08:48 时间
一、概述
查询所使用的 QueryBuilders来源于以下
import static org.elasticsearch.index.query.QueryBuilders.*;
请注意,您可以使用QueryBuilder对象上的toString()方法轻松打印(也称为调试)JSON生成的查询。
1.1、匹配所有
最简单的查询,匹配所有文档,给它们一个_score 1.0。
QueryBuilder qb = matchAllQuery();
1.2、全文查询
高级全文查询通常用于在全文字段(如电子邮件正文)上运行全文查询。他们了解如何分析被查询的字段,并在执行之前将每个字段的分析器(或search_analyzer)应用于查询字符串。
该组中的查询是:
1)匹配查询:用于执行全文查询的标准查询,包括模糊匹配和短语或邻近查询。//查询出包含 value 的数据 或者包含不连续的字符
QueryBuilder qb = matchQuery("field","value" );
示例:查询:QueryBuilder qb = matchQuery("name", "张三");
结果
数据:{"address":"benjing","age":"12","name":"张三2"} 数据:{"address":"benjing","age":"12","name":"aa张三3","num":12} 数据:{"address":"benjing","age":"12","name":"张爱三","num":12} 数据:{"address":"benjing","age":"12","name":"张三3"} 数据:{"address":"benjing","age":"12","name":"李宏旭 张三3","num":12} 数据:{"address":"benjing","age":"12","name":"张四","num":12}
2)多匹配查询:multi_match查询,匹配查询的多字段版本。
QueryBuilder qb = multiMatchQuery( "kimchy elasticsearch", //值 "user", "message" //字段 );
示例:查询:QueryBuilder qb = multiMatchQuery("张三 12", "name","age");
结果
数据:{"address":"benjing","age":"1","name":"张三"} 数据:{"address":"benjing","age":"12","name":"张三2"} 数据:{"address":"benjing","age":"12","name":"aa张三3","num":12} 数据:{"address":"benjing","age":"12","name":"张爱三","num":12} 数据:{"address":"benjing","age":"12","name":"张三3"} 数据:{"address":"benjing","age":"12","name":"李宏旭 张三3","num":12} 数据:{"address":"benjing","age":"12","name":"王五","num":3} 数据:{"address":"benjing","age":"12","name":"张四","num":12} 数据:{"address":"benjing","age":"12","name":"王五"}
3)common_terms查询:一个更专业的查询,它提供了对不常见单词的更多偏好。
QueryBuilder qb = commonTermsQuery("field","value");
示例:查询:QueryBuilder qb = commonTermsQuery("name", "张三");
结果:
数据:{"address":"benjing","age":"1","name":"张三"} 数据:{"address":"benjing","age":"12","name":"张三2"} 数据:{"address":"benjing","age":"12","name":"aa张三3","num":12} 数据:{"address":"benjing","age":"12","name":"张爱三","num":12} 数据:{"address":"benjing","age":"12","name":"张三3"} 数据:{"address":"benjing","age":"12","name":"李宏旭 张三3","num":12}
4)query_string查询:支持紧凑的Lucene查询字符串语法,允许您在单个查询字符串中指定AND | OR | NOT条件和多字段搜索。仅限专家用户。
QueryBuilder qb = queryStringQuery("+kimchy -elasticsearch"); //value
5)simple_query_string:query_string语法的更简单,更健壮的版本,适合直接向用户公开。
QueryBuilder qb = simpleQueryStringQuery("+kimchy -elasticsearch");//value
github:https://github.com/bjlhx15/spring-cloud-base/tree/master/service6-es
相关文章
- 百度地图API地点搜索-获取经纬度
- 百度人脸注册/搜索测试
- 织梦搜索结果增加dede:type、dede:arclist、dede:channelartlist、dede:tag、dede:php等标签支持
- POJ 1088 滑雪(记忆化搜索)
- (剑指Offer)面试题27:二叉搜索树与双向链表
- SAP Spartacus的产品搜索API
- SAP CRM WebClient UI点了产品主数据搜索结果超链接后的跳转调试
- atitit.vod search doc.doc 点播系统搜索功能设计文档
- 【LeetCode 35】搜索插入位置
- 具有随机分形自适应搜索策略的蚁狮优化算法-附代码
- EditText输入为空button不可点击搜索
- xpath教程一---简单的标签搜索