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
SearchRequest用于与搜索文档、聚合、定制查询有关的任何操作的更多相关文章
- bs4--官文--搜索文档树
搜索文档树 Beautiful Soup定义了很多搜索方法,这里着重介绍2个: find() 和 find_all() .其它方法的参数和用法类似,请读者举一反三. 再以“爱丽丝”文档作为例子: ht ...
- 【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
package com.jadyer.solrj; import java.util.ArrayList; import java.util.List; import org.apache.solr. ...
- es之java搜索文档
1:搜索文档数据(单个索引) @Test public void getSingleDocument(){ GetResponse response = client.prepareGet(" ...
- [工具推荐]制作基于Dash的本地文档方便搜索文档api和内容
[版权声明]:本文章由danvid发布于http://danvid.cnblogs.com/,如需转载或部分使用请注明出处 最近在看es的文档,发现查起api来真的很麻烦,很多现在开源的文档都没有查询 ...
- 使用requests爬取梨视频、bilibili视频、汽车之家,bs4遍历文档树、搜索文档树,css选择器
今日内容概要 使用requests爬取梨视频 requests+bs4爬取汽车之家 bs4遍历文档树 bs4搜索文档树 css选择器 内容详细 1.使用requests爬取梨视频 # 模拟发送http ...
- jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条
jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒 ...
- Python爬虫系列(六):搜索文档树
今天早上,写的东西掉了.这个烂知乎,有bug,说了自动保存草稿,其实并没有保存.无语 今晚,我们将继续讨论如何分析html文档. 1.字符串 #直接找元素soup.find_all('b') 2.正则 ...
- MongoDB中的映射,限制记录和记录拼排序 文档的插入查询更新删除操作
映射 在 MongoDB 中,映射(Projection)指的是只选择文档中的必要数据,而非全部数据.如果文档有 5 个字段,而你只需要显示 3 个,则只需选择 3 个字段即可. find() 方法 ...
- Linux之文档与目录结构 目录的相关操作 Linux的文件系统
Linux之文档与目录结构 Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到 ...
随机推荐
- Chrome浏览器添加信任站点
转载来源:https://zhidao.baidu.com/question/1946829886340846268.html 在浏览器地址栏输入:chrome://net-internals/#hs ...
- 《绘图前设置:像素格式——PIXELFORMATDESCRIPT、设备上下文、渲染上下文》
转载地址:https://www.cnblogs.com/wiener-zyj/p/4159745.html 像素格式——PIXELFORMATDESCRIPT.设备上下文.渲染上下文 在OpenG ...
- 扩展欧几里得求解同余方程(poj 1061)
设方程 ax + by = c , 若 gcd(a,b) 是 c的因子(记作gcd(a,b)|c)则方程有解,反之无解. 其中x0,y0是方程的一组特解 , d = gcd(a,b), poj1061 ...
- Bugku-CTF之PHP_encrypt_1(ISCCCTF) [fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=]
Day34 PHP_encrypt_1(ISCCCTF) fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA= 下载下来.zip文件
- Java - Test - TestNG: testng.xml 简介
1. 概述 简介 testng.xml 中的格式, 元素 2. 背景 testng.xml 概述 测试套件 的配置文件 问题 一下生成了那么多内容 我有点看不懂 一上来就看不懂, 其实很正常, 慢慢说 ...
- P&R --From 陌上风骑驴看IC
FLOORPLAN: 做好floorplan要掌握哪些知识技能 遇到floorplan问题,大致的debug步骤和方法有哪些 如何衡量floorplan的QA 以上是驴神提的五大点问题.鄙人狠狠地反驳 ...
- react脚手架和深入理解jsx语法
react的mvc和vue的mvvm vue的mvvm属于双向绑定,view层,model数据层,vm实现双向绑定的控制层 此种模式,再某一类项目种很有优势:管理系统 ( OA, ERP , CRM ...
- 5.Python语句
.button, #logout { color: #333; background-color: #fff; border-color: #ccc; } span#login_widget > ...
- ping命令基于ICMP协议的返回信息分析
Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中 Ping 是一个十分好用的 TCP/IP 工具.它主要的功能是用来检测网络的连通情况和分析网络速度.可以利用 PING 命令检查网络连通状 ...
- JAVA基础学习(1)之计算
1.0计算机与编程语言 1.0.1计算机与编程语言 计算机解决问题 人:What to do 计算机:How to do 编程语言 描述要求计算机如何做事情的过程或方法 算法 计算=算法—>编程 ...