深入解析 `org.elasticsearch.action.search.SearchRequest` 类

在Elasticsearch中,SearchRequest 类是执行搜索操作的核心构造,它封装了所有与搜索请求相关的参数和设置。本文将详细介绍该类的成员属性及方法,帮助开发者更好地理解和利用其功能。

成员属性

基本属性

  • indices : String[] - 指定要搜索的索引名称数组。
  • types : String[](已废弃)- 指定文档类型,Elasticsearch 7.x后不再使用。
  • routing : String - 可用于限制搜索范围到特定路由值的文档。
  • preference : String - 控制搜索时的分片选择偏好。
  • searchType : SearchType - 搜索类型,如QUERY_THEN_FETCHDFS_QUERY_THEN_FETCH
  • source : SearchSourceBuilder - 搜索源构建器,定义查询、排序、聚合等搜索请求体内容。
  • scroll : TimeValue - 用于滚动搜索的时间周期。
  • requestCache : Boolean - 是否使用请求缓存。
  • allowPartialSearchResults : Boolean - 是否允许返回部分结果集。
  • batchedReduceSize : Integer - 批量归约的大小。
  • maxConcurrentShardRequests : Integer - 最大并发分片请求数。
  • waitForCheckpoints : Long - 等待检查点的个数。
  • waitForCheckpointsTimeout : TimeValue - 等待检查点超时时间。
  • preFilterShardSize : Integer - 预过滤分片大小,默认由 DEFAULT_PRE_FILTER_SHARD_SIZE 定义。
  • ccsMinimizeRoundtrips : Boolean - 是否最小化跨集群搜索的往返次数。
  • fieldsOptionEmulationEnabled : Boolean - 是否启用字段选项模拟。
  • minCompatibleShardNode : Version - 最低兼容的节点版本。
  • indicesOptions : IndicesOptions - 控制如何处理未找到的索引和如何扩展通配符表达式的选项。
  • includeDataStreams : Boolean - 是否包含数据流。
  • defaultCcsMinimizeRoundtrips : Boolean - 跨集群搜索默认是否最小化往返次数。
  • defaultFieldsEmulationEnabled : Boolean - 字段选项模拟默认是否启用。

辅助属性

  • localClusterAlias : String - 当前请求的本地集群别名。
  • absoluteStartMillis : Long - 绝对开始时间毫秒值。
  • finalReduce : Boolean - 是否执行最终归约阶段。
  • pointInTimeBuilder : PointInTimeBuilder - 点在时间搜索构建器。

方法概览

核心方法

  • writeTo(StreamOutput out): 将请求序列化写入输出流。
  • validate(): 验证搜索请求的有效性。
  • getLocalClusterAlias(): 获取本地集群别名。
  • isFinalReduce(): 判断是否执行最终归约。
  • getOrCreateAbsoluteStartMillis(): 获取或创建绝对开始时间。
  • getAbsoluteStartMillis(): 获取绝对开始时间。
  • validateIndices(ClusterState state): 验证索引是否存在且可访问。
  • setCcsMinimizeRoundtrips(boolean ccsMinimizeRoundtrips): 设置是否最小化跨集群搜索的往返次数。
  • isCcsMinimizeRoundtrips(): 查询是否已设置最小化跨集群搜索的往返次数。
  • setFieldsOptionEmulationEnabled(boolean fieldsOptionEmulationEnabled): 启用或禁用字段选项模拟。
  • isFieldsOptionEmulationEnabled(): 判断字段选项模拟是否启用。
  • setBatchedReduceSize(int batchedReduceSize): 设置批量归约大小。
  • getBatchedReduceSize(): 获取批量归约大小。
  • setMaxConcurrentShardRequests(int maxConcurrentShardRequests): 设置最大并发分片请求数。
  • getMaxConcurrentShardRequests(): 获取最大并发分片请求数。
  • setWaitForCheckpoints(long waitForCheckpoints): 设置等待检查点的数量。
  • getWaitForCheckpoints(): 获取等待检查点的数量。
  • setWaitForCheckpointsTimeout(TimeValue waitForCheckpointsTimeout): 设置等待检查点超时时间。
  • getWaitForCheckpointsTimeout(): 获取等待检查点超时时间。
  • setPreFilterShardSize(int preFilterShardSize): 设置预过滤分片大小。
  • getPreFilterShardSize(): 获取预过滤分片大小。
  • isSuggestOnly(): 判断是否仅为建议查询。
  • resolveTrackTotalHitsUpTo(SearchContext searchContext): 解析跟踪总命中数上限。
  • rewrite(IndexReader reader): 重写搜索请求以适应索引结构。
  • createTask(long id, String type, String action, TaskId parentTaskId, Map<String, String> headers): 创建搜索任务。
  • buildDescription(): 构建描述此请求的任务字符串。
  • equals(Object obj) , hashCode() , toString(): 实现对象比较、哈希码计算和字符串表示。

静态成员

  • FORMAT_PARAMS: 格式化参数常量。
  • DEFAULT_PRE_FILTER_SHARD_SIZE: 默认预过滤分片大小。
  • DEFAULT_BATCHED_REDUCE_SIZE: 默认批量归约大小。
  • DEFAULT_ABSOLUTE_START_MILLIS: 默认绝对开始时间毫秒值。
  • DEFAULT_INDICES_OPTIONS: 默认索引选项。

通过上述成员属性和方法的解析,可以看出 SearchRequest 类设计得非常全面且灵活,旨在满足各种复杂的搜索需求。开发者可以根据具体应用场景调整这些参数,实现高效的搜索操作。

相关推荐
珠海西格电力5 小时前
零碳园区的能源结构优化需要哪些技术支持?
大数据·人工智能·物联网·架构·能源
集和诚JHCTECH7 小时前
边缘智能,触手可及|BRAV-7821高能效AI边缘计算系统正式发布
大数据·人工智能·边缘计算
TDengine (老段)8 小时前
使用安装包快速体验 TDengine TSDB
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
雨大王5128 小时前
工业大数据如何定义及其在制造业中的核心价值
大数据
AI智能探索者9 小时前
大数据领域数据可视化:打造高效的数据可视化方案
大数据·ai·信息可视化
码农阿豪9 小时前
时序数据库选型权威指南:从大数据视角解读IoTDB的核心优势
大数据·时序数据库·iotdb
建群新人小猿9 小时前
陀螺匠企业助手—个人简历
android·大数据·开发语言·前端·数据库
阿白逆袭记11 小时前
Git原理与使用详解(十):Git大师之路——总结与最佳实践
大数据·git·elasticsearch
测试人社区-浩辰11 小时前
AI与区块链结合的测试验证方法
大数据·人工智能·分布式·后端·opencv·自动化·区块链
AI营销干货站12 小时前
原圈科技:决胜未来的金融AI市场分析实战教程
大数据·人工智能