elasticsearch(七)java 搜索功能Search Request的介绍与使用
目录
1,首先创建主搜索请求:
2,对主搜索请求进行参数设置
前端几节都是介绍的基于单个文档或着单个文档库的操作,
本节开始将介绍基于所有或指定的任何个数文档库的操作的api
SearchRequest用于与搜索文档、聚合、定制查询有关的任何操作,还提供了在查询结果的基于上,对于匹配的关键词进行突出显示的方法。
1,首先创建搜索请求对象:
SearchRequest searchRequest = new SearchRequest();
2,对搜索请求进行基本参数设置
1)设置查询指定的某个文档库:
SearchRequest searchRequest = new SearchRequest("posts");
searchRequest.types("doc");
2)查询多个文档库,其中多个文档库名之间用逗号隔开
SearchRequest searchRequest = new SearchRequest("posts2","posts", "posts2", "posts1");
或者这样设置:
SearchRequest searchRequest = new SearchRequest();
// 指定只能在哪些文档库中查询:可以添加多个且没有限制,中间用逗号隔开
searchRequest.indices("posts2","posts", "posts2", "posts1");
默认是去所有文档库中进行查询
3)指定查询的文档库中的文档类型:
searchRequest.types("doc1");
或多种类型,同样是文档类型之间用逗号隔开:
searchRequest.types("doc1", "doc1", "doc2");
4)设置指定查询的路由分片
searchRequest.routing("routing");
5)用preference方法去指定优先去某个分片上去查询(默认的是随机先去某个分片)
searchRequest.preference("_local");
6)向主搜索请求中可以添加搜索内容的特征参数
a.创建 搜索内容参数设置对象:SearchSourceBuilder
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
b. 将SearchSourceBuilder对象添加到搜索请求中:
searchRequest.source(searchSourceBuilder);
3,为搜索的文档内容对象SearchSourceBuilder设置参数:
大多控制搜索内容的行为参数都可以在SearchSourceBuilder上进行设置,SearchSourceBuilder包含与Rest API的搜索请求主体中类似的参数选项。 以下是一些常见选项的几个示例:
1)查询包含指定的内容:
a.查询所有的内容
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
b.查询包含关键词字段的文档:如下,表示查询出来所有包含user字段且user字段包含kimchy值的文档
sourceBuilder.query(QueryBuilders.termQuery("user", "kimchy"));
c.上面是基于QueryBuilders查询选项的,另外还可以使用MatchQueryBuilder配置查询参数
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("user", "kimchy");
// 启动模糊查询
matchQueryBuilder.fuzziness(Fuzziness.AUTO);
// 在匹配查询上设置前缀长度选项
matchQueryBuilder.prefixLength(3);
// 设置最大扩展选项以控制查询的模糊过程
matchQueryBuilder.maxExpansions(10);
d.也可以使用QueryBuilders实用程序类创建QueryBuilder对象。此类提供了可用于使用流畅的编程样式创建QueryBuilder对象的辅助方法:
QueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("user", "kimchy")
.fuzziness(Fuzziness.AUTO)
.prefixLength(3)
.maxExpansions(10);
注:无论用于创建它的方法是什么,都必须将QueryBuilder对象添加到SearchSourceBuilder
searchSourceBuilder.query(matchQueryBuilder);
3)设置查询的起始索引位置和数量:如下表示从第1条开始,共返回5条文档数据
sourceBuilder.from(0);
sourceBuilder.size(5);
4)设置查询请求的超时时间:如下表示60秒没得到返回结果时就认为请求已超时
sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
5)默认情况下,搜索请求会返回文档_source的内容,但与Rest API中的内容一样,您可以覆盖此行为。例如,您可以完全关闭_source检索:
sourceBuilder.fetchSource(false);
该方法还接受一个或多个通配符模式的数组,以控制以更精细的方式包含或排除哪些字段
String[] includeFields = new String[] {"title", "user", "innerObject.*"};
String[] excludeFields = new String[] {"_type"};
sourceBuilder.fetchSource(includeFields, excludeFields);
本节内容待续,敬请关注 ....
————————————————
版权声明:本文为CSDN博主「未名who」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_2300688967/article/details/83902943
elasticsearch(七)java 搜索功能Search Request的介绍与使用相关推荐
- java search 不能使用方法_elasticsearch(七)java 搜索功能Search Request的介绍与使用...
目录 前端几节都是介绍的基于单个文档或着单个文档库的操作, 本节开始将介绍基于所有或指定的任何个数文档库的操作的api SearchRequest用于与搜索文档.聚合.定制查询有关的任何操作,还提供了 ...
- php制作搜索框_搜索功能(search.php)模板制作 - WordPress模板开发
搜索功能(search.php)模板制作 搜索功能是任何网站都必须的功能,通过搜索功能,用户可以快速的在我们的网站上找到自己需要的内容.在wordpress模板制作教程中,搜索功能也需要制作出来,这就 ...
- [Spring Boot]12 ElasticSearch实现分词搜索功能
目录 一.前言 二.搜索功能的需求 三.需求开发 1.服务器安装ElasticSearch和IK分词器 2.需求开发 1)pom.xml引入jar包: 2)yml增加配置 3)配置类Elasticse ...
- springboot集成Elasticsearch实现各种搜索功能
springboot集成Elasticsearch各类搜索功能实现 springboot集成Elasticsearch使用completion suggest实现自动关键字补全 建立学生的索引和映射: ...
- python-django框架中使用docker和elasticsearch配合实现搜索功能
注意:系统环境为Ubuntu18 一.docker安装 0:如果之前有安装过docker使用以下命令卸载: sudo apt-get remove docker docker-engine docke ...
- Elasticsearch:异步搜索 - async search
Elasticsearch 通常允许你快速搜索大量数据. 在某些情况下,搜索可能在许多 shard 上执行,可能针对 frozen indices (冻结的索引)及跨越多个远程集群 (remote c ...
- php 垂直搜死哦,垂直搜索(Vertical Search)的详细介绍
垂直搜索是相对于通用的搜索来说的,垂直搜索是通用搜索引擎的一种细化,垂直搜索专注于某一个特定行业的搜索,搜索的内容更加专一化,比如购物的内容,机械产品的内容,服务信息的内容等,是某一个行业内的搜索.垂 ...
- ElasticSearch(七) 搜索
title: ElasticSearch(七) 搜索 tags: ElasticSearch author: Clown95 搜索 在前面,已经介绍了在ElasticSearch索引中处理数据的基础知 ...
- GIS(六)——实现js版搜狗地图周边搜索功能
在上一篇文章<GIS(五)--完成js版搜狗地图基本交互搜索功能>中,介绍了搜狗地图的关键字搜索功能,今天就实现以下另一个重要功能吧--那就是周边搜索功能. 按照惯例,还是把官网上的示例代 ...
- html打开微信搜索页,微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)...
上效果图: 一:搜索框功能实现 1.在首页做一个搜索框的样式并实现跳转到搜索页面 搜索 .search{ width: 80%; } .search_arr { border: 1px solid # ...
最新文章
- linux sed高级用法,sed 高级用法
- 运行shell命令并捕获输出
- PostgreSQL教程(二):SQL语言
- JAVA模拟肯德基点餐系统源码,肯德基辞职员工透露,用这几句暗语点餐,你拿的分量会比别人多...
- 自用的获取时间 传值是获取剩余时间 不传是获取当前时间
- Ubuntu解决ifconfig command not found的办法
- 初试SpringStateMachine框架实现状态机
- ASP.NET Core Logging in Elasticsearch with Kibana
- linux shell 命令批量杀死进程
- 计算机留言板毕业论文摘要,留言板系统设计(毕业论文)
- 代码整洁之道内容概括
- 1.74HC138控制LED发光
- R语言 rgl plot3d函数
- java调阿里云短信接口
- 毕业四年,我当初是如何走上编程这条路的!
- 2020-12-24《重学操作系统——上》林䭽 前阿里巴巴高级技术专家(P8)
- U盘格式化导致存储空间变小的解决方法汇总
- win10把中文用户名改为英文用户名的两种方法
- VC++开发RTX拨打电话插件
- 3D Max一些基本认识