目录

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的介绍与使用相关推荐

  1. java search 不能使用方法_elasticsearch(七)java 搜索功能Search Request的介绍与使用...

    目录 前端几节都是介绍的基于单个文档或着单个文档库的操作, 本节开始将介绍基于所有或指定的任何个数文档库的操作的api SearchRequest用于与搜索文档.聚合.定制查询有关的任何操作,还提供了 ...

  2. php制作搜索框_搜索功能(search.php)模板制作 - WordPress模板开发

    搜索功能(search.php)模板制作 搜索功能是任何网站都必须的功能,通过搜索功能,用户可以快速的在我们的网站上找到自己需要的内容.在wordpress模板制作教程中,搜索功能也需要制作出来,这就 ...

  3. [Spring Boot]12 ElasticSearch实现分词搜索功能

    目录 一.前言 二.搜索功能的需求 三.需求开发 1.服务器安装ElasticSearch和IK分词器 2.需求开发 1)pom.xml引入jar包: 2)yml增加配置 3)配置类Elasticse ...

  4. springboot集成Elasticsearch实现各种搜索功能

    springboot集成Elasticsearch各类搜索功能实现 springboot集成Elasticsearch使用completion suggest实现自动关键字补全 建立学生的索引和映射: ...

  5. python-django框架中使用docker和elasticsearch配合实现搜索功能

    注意:系统环境为Ubuntu18 一.docker安装 0:如果之前有安装过docker使用以下命令卸载: sudo apt-get remove docker docker-engine docke ...

  6. Elasticsearch:异步搜索 - async search

    Elasticsearch 通常允许你快速搜索大量数据. 在某些情况下,搜索可能在许多 shard 上执行,可能针对 frozen indices (冻结的索引)及跨越多个远程集群 (remote c ...

  7. php 垂直搜死哦,垂直搜索(Vertical Search)的详细介绍

    垂直搜索是相对于通用的搜索来说的,垂直搜索是通用搜索引擎的一种细化,垂直搜索专注于某一个特定行业的搜索,搜索的内容更加专一化,比如购物的内容,机械产品的内容,服务信息的内容等,是某一个行业内的搜索.垂 ...

  8. ElasticSearch(七) 搜索

    title: ElasticSearch(七) 搜索 tags: ElasticSearch author: Clown95 搜索 在前面,已经介绍了在ElasticSearch索引中处理数据的基础知 ...

  9. GIS(六)——实现js版搜狗地图周边搜索功能

    在上一篇文章<GIS(五)--完成js版搜狗地图基本交互搜索功能>中,介绍了搜狗地图的关键字搜索功能,今天就实现以下另一个重要功能吧--那就是周边搜索功能. 按照惯例,还是把官网上的示例代 ...

  10. html打开微信搜索页,微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)...

    上效果图: 一:搜索框功能实现 1.在首页做一个搜索框的样式并实现跳转到搜索页面 搜索 .search{ width: 80%; } .search_arr { border: 1px solid # ...

最新文章

  1. linux sed高级用法,sed 高级用法
  2. 运行shell命令并捕获输出
  3. PostgreSQL教程(二):SQL语言
  4. JAVA模拟肯德基点餐系统源码,肯德基辞职员工透露,用这几句暗语点餐,你拿的分量会比别人多...
  5. 自用的获取时间 传值是获取剩余时间 不传是获取当前时间
  6. Ubuntu解决ifconfig command not found的办法
  7. 初试SpringStateMachine框架实现状态机
  8. ASP.NET Core Logging in Elasticsearch with Kibana
  9. linux shell 命令批量杀死进程
  10. 计算机留言板毕业论文摘要,留言板系统设计(毕业论文)
  11. 代码整洁之道内容概括
  12. 1.74HC138控制LED发光
  13. R语言 rgl plot3d函数
  14. java调阿里云短信接口
  15. 毕业四年,我当初是如何走上编程这条路的!
  16. 2020-12-24《重学操作系统——上》林䭽 前阿里巴巴高级技术专家(P8)
  17. U盘格式化导致存储空间变小的解决方法汇总
  18. win10把中文用户名改为英文用户名的两种方法
  19. VC++开发RTX拨打电话插件
  20. 3D Max一些基本认识

热门文章

  1. redisrabbitMQ安装
  2. 基于原生javascript的淡入淡出函数封装(兼容IE)
  3. android147 360 程序锁
  4. [bug] VS2013 Brower Link和Aspnetpager引发的问题分析
  5. 625某电商网站数据库宕机故障解决实录(上)
  6. MATLAB命令窗常用命令
  7. Linux内核中的延时函数
  8. SONIC 编译指南
  9. DPDK学习0 -- 学习步骤
  10. linux环境变量如何设置