SearchRequest用于与搜索文档、聚合、定制查询有关的任何操作

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

转载于:https://www.cnblogs.com/zeenzhou/p/11497948.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

截网页全屏图的方法-截网页全屏软件-Web2Pic Pro

抓取整个网页的最强工具:Web2Pic Pro http://www.pconline.com.cn/pcedu/tuijian/photo/snap/0507/acc/w2psetup.exe 使用方法你到下面的地址: http://www.pconline.com.cn/pcedu/tuijian/photo/snap/0507/675763.html 在上网过程中我们经常会抓取保存一些网页内容为图像格式…

ES Search API

Search API 搜索请求 SearchRequest用于与搜索文档、聚合、suggestions相关的任何操作,还提供了在结果文档上请求高亮的方法。 在最基本的表单中,我们可以向请求添加查询: SearchRequest searchRequest new SearchRequest(); SearchSourceB…

silverlight 跨域socket

http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx一切都是临时的,beta2相对于beta1改了很多,不知道正式发布时是否还会改变。翻译的作用是备忘。Silverlight 2 beta 支持2种访问远程服务器的方式:System.Net命名空间中的WebCli…

OCP-052考试题库汇总(54)-CUUG内部解答版

USER1 grants SELECT and UPDATE privileges on USER1.EMP to USER2。 SYS executes this command: SQL> REVOKE SELECT ON user1.emp FROM user1; What will be the outcome? A)It will succeed and USER2 will be unable to perform SELECT on USER1.EMP B)It…

ES 创建mapping

mapping的写入与查看首先创建一个索引: curl -XPUT "http://erp2.es.kd1.pagoda.com.cn:80/erp_stock_index"{"acknowledged":true} 现在只创建了一个索引,并没有设置mapping,查看一下索引mapping的内容: cur…

关于C语言野指针的问题

typedef struct{int id;char username [6];} user;int main(void){user *userr;strncpy(userr->username, "hello", 3);strcat(userr->username, ""0");printf("userr->username%s."n", userr->username);return 0;} 便已…

简单 屏蔽 assert

简介 屏蔽 assert 如何实现 Makefile 中加 CFLAGS -DNDEBUG 或者 gcc -DNDEBUG 转载于:https://www.cnblogs.com/eat-too-much/p/11512524.html

多核分布式队列的实现:“偷”与“自私”的运用(1)

多核分布式队列的实现:"偷"与"自私"的运用 在讨论本文的正题前,不得不先说一些闲话,嫌哆嗦者可以跳过"前言"部分不读。1. 前言在发表了"老子是伟大的多核计算科学家" (链接:[…

近期刷题记录表

9月14日:   luogu P1627 [CQOI2009]中位数 题意:给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。 题解:根据中位数的性质&#xff0c…

《性能测试从零开始--LoadRunner入门》读书笔记(四)

终于看完了澳网的赛事了,今天要把第五章的读书笔记完成,哈哈。 4.参数化 书中花了不少力气说明这方面的用法,可见参数化在整个脚本的制作过程中的重要性。在这个session开始的时候,书使用了不少的废话去说明白参数化的意义和参数化…

STM32CubeMX

博客:https://blog.csdn.net/wofreeo/article/details/88990192 https://blog.csdn.net/xuquanlin_1680/article/details/80499977 转载于:https://www.cnblogs.com/panda-w/p/11523405.html

我的QTP 9.5装不上去:a previos installation has not competed

解决方法: 1. Open the %TEMP% folder (in the Start -> Run dialog, type %TEMP% and click Enter).2. In this folder, search for a file named "Prereq_Mgr.HP_QuickTest_Professional_9.5.log". This file is created by the inst…

转 Git生成SSH

SSH keys SSH key 可以让你在你的电脑和Code服务器之间建立安全的加密连接。 先执行以下语句来判断是否已经存在本地公钥: cat ~/.ssh/id_rsa.pub 如果你看到一长串以 ssh-rsa或 ssh-dsa开头的字符串, 你可以跳过 ssh-keygen的步骤。 提示: 最好的情况是一个密码对应…

u boot 驱动完成

很久没有更新了,终于在年前完成了u-boot下无线网卡的驱动移植,其实驱动移植很简单,驱动里面大部分都是自己的逻辑,真正和系统相关的就是系统的一点点接口,只需要把这些一点点接口都替换掉就可以实现了,当然…

使用Git Flow进行版本控制

重置 # force reset $ git flow init -f 转载于:https://www.cnblogs.com/ww01/p/11527124.html

我的RSS我做主:My RSS

昨天晚上通过google reader 浏览自己的网站时发现,Rss输出的内容比较简单,没有我想输出内容,诸如“评论数”、“评论文章”,“永久链接”等等。修改wordpress RSS 输出函数话,每次更新更新wordpress又要重新改一次,比较…

luogu P3407 散步 二分答案

题目描述 一条道路上&#xff0c;位置点用整数A表示。 当A0时&#xff0c;有一个王宫。当A>0&#xff0c;就是离王宫的东边有A米&#xff0c;当A<0&#xff0c;就是离王宫的西边有A米。 道路上&#xff0c;有N个住宅从西向东用1-N来标号。每个住宅有一个人。住宅只会存在…

C# 视频监控系列(2):客户端——封装API

前言 本章主要是在C#封装的海康DVR客户端SDK 的代码上修改的&#xff0c;并参考《Hikvision 板卡网络开发包编程手册V4.7.pdf》补上更完整的注释&#xff0c;并且参照VC源码做了小部分修改。 参考 1. C#封装的海康DVR客户端SDK 系列 1. C# 视频监控系列&#xff08;1&…

java继承 、方法重写、重写toString方法

1.Java的继承&#xff0c;关键词Extends 1 package cn.mwf.oo;2 3 public class TextExtends {4 public static void main(String[] args) {5 Student s new Student("侠客小飞", 60, "计算机科学与技术");6 s.rest();7 s.st…

网络攻击与防御 实验1

做实验的截图 转载于:https://www.cnblogs.com/ma1998/p/11536582.html