千家信息网

Elasticsearch Search API怎么使用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"Elasticsearch Search API怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2026年11月01日Elasticsearch Search API怎么使用

本篇内容介绍了"Elasticsearch Search API怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Search API概述

详细API如下:

  • public final SearchResponse sear-ch(SearchRequest searchReques-t, RequestOptions options) throws IOException

  • public final void searchAsync(Sear-chRequest searchRequest, Reque-stOptions options, ActionListener li-stener)

    SearchRequest类图:

其关键属性说明如下:

  • private SearchType searchType = SearchType.DEFAULT:搜索类型

  1. QUERY_THEN_FETCH
    首先根据路由算法向相关分片发送请求,此时只返回documentId与一些必要信息(例如用于排序等),然 后对各个分片的结果进行汇聚、排序。然后选取客户端需要获取的数据条数(top n)。最后根据doc-umentId再向各个分片请求具体的文档信息。

  2. QUERY_AND_FETCH

    在5.4.x版本开始废弃,直接向各个分片节点请求数据,每个分片返回客户端请求数量的文档信息,然后汇聚并全部返回给客户端,返回的数据为客户端请求数量size * (路由后的分片数量)。

  3. DFS_QUERY_THEN_FETCH

    在开始向各个节点发送请求之前会先进行一次词频与相关性的计算,后续处理流程与QUERY_THEN_F-ETCH相同,可以看出该查询类型的文档相关性会更高,但性能比QUE-RY_THEN_FETCH要差。

  • private String[] indices:待查询的索引库。

  • private String routing:路由字段值。

  • private String preference:复制组内倾向性。

  • private SearchSourceBuilder sour-ce:查询主体(rerquest body),后续会重点讲解。

  • private Boolean requestCache:是否开启查询缓存。

  • private Boolean allowPartialSearc-hResults:是否允许部分成功。

  • private Scroll scroll:滚动API(用于分页)

  • private int batchedReduceSize = DEFAULT_BATCHED_REDUCE_SIZE:批量归并size:默认为512

  • private int maxConcurrentShardRequests = 0:建议最大值别超过256,其核心含义待研究。

  • private int preFilterShardSize = 128,其核心作用待研究。

  • private String[] types:待查询的类型。

接下来再来重点关注一下查询API几个通用的参数:

  • timeout
    查询的超时时间。

  • from
    查询开始的偏移量,分页参数,类似于关系数据库的分页的start。默认值为0。

  • size
    批量获取条数,用于分页查询。

  • search_type
    查询类型,6.4.0只支持QUERY_T-HEN_FETCH与DFS_QUERY_TH-EN_FETCH。

  • request_cache
    查询缓存,如果设置为false,取决于index级别的设置,将在索引管理API时详细讲解。

  • search_results
    是否允许部分成功,例如一个查询请求需要向3个分片发出请求,如果只有两个分片成功返回结果而另外一个出现故障。如果设置为false则会返回整体失败,如果设置为true则会成功部分结果,默认为true。

  • terminate after
    一个查询为每个分片最多收集的文档数,当达到该数量是,查询会提前结束。

  • batched_reduce_size
    在协调节点上应该立即减少一次请求需要访问的分片数量,如果一次请请求需要汇聚太多节点上的数据容易造成内存消耗,该值可作为一个保护机制,控制一个请求同一时间并发访问的最大分片数量,默认为512。

注意:search_type,request_cache和allow_partial_search_results这三个参数,必须查询url级别的参数(query str-ing parameters),如果使用Rest low Le-vel API时需要特别留意。

URI Search

Elasticsearch支持使用URI请求模式来使用Search API,并不支持查询请求体中所有参数,该模式主要用途是用于测试,诸如使用CURL查询命令等。

URI Search示例如下:

1GET twitter/_search?q=user:kimchy

URI Search支持如下参数:

  • q
    定义查询字符串,其语法映射为DSL查询语法之query_string。

  • df
    查询字符串未使用字段前缀时定义的默认字段。

  • analyzer
    针对查询字符串使用的分词器。

  • analyze_wildcard
    是否分析通配符合前缀查询,默认值为false。

  • batched_reduce_size
    控制协调节点批量发送分片的最大个数,主要是控制协调节点内存的消耗而提供的一种保护机制。

  • default_oprator
    默认操作类型,可选值为and、or,默认值为or。

  • lenient
    是否支持类型转换异常,默认为fa-sle,如果将一个字符类型传递给一个数字类型会抛出异常。如果设置true则忽略该异常。

  • explain
    类似于执行计划,表示对于每一个命中,包含如果得分是如何算出来的,默认为false。

  • _source
    用于对_source字段进行过滤,可以设置false来禁止返回_souce字段。该参数支持通配符表达式,例如ob-j.*,用于字段过滤。

  • stored_fields
    用于字段过滤,已在字段过滤部分详细介绍过。

  • sort
    排序,可以类似于关系型数据库的排序语法:fieldName:asc | desc,也可以使用特殊字段_score(表示按分数,默认值)。

  • track_scores
    当使用排序时,跟踪返回结果中分数计算过程。

  • track_total_hits
    默认值为true,表示在返回结果中返回满足该查询条件的所有记录数。

  • timeout
    查询超时时间,默认永不超时。

  • terminate_after
    是否开启提前结束查询,主要是控制一次查询,从一个分片中返回的最大文档数量,如果开启,返回结果中会包含一个响应参数terminate-d_early,指示是否提前结束。

  • from
    用于分页,起始记录数。

  • size
    用于分页,控制一次查询,从每个分片查询的记录条数。

  • search_type
    查询类型,已在文章开头处介绍。

  • allow_partial_search_results
    是否允许部分分片执行失败,默认为true,也可以集群配置参数:se-arch.default_allow_partial_results来设置默认值。

"Elasticsearch Search API怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

查询 参数 字段 类型 数量 数据 结果 节点 支持 文档 部分 排序 控制 最大 成功 字符 客户 客户端 信息 字符串 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 美国互联网科技巨头监管 金融科技创新监管互联网金融 互联网金融 科技 唐信互联网科技 互联网高科技股票 玖二柒互联网科技公司待遇 中国的互联网科技企业的崛起 昭通云南众福互联网科技有限公司 互联网科技教育视频 互联网为啥属于高科技 厦门千工互联网科技有限公司 广州市恰铎互联网科技有限公司 青海科技产业互联网发展 美国互联网科技实力 互联网方面的科技前沿 富国互联网科技002692 工业互联网科技创业 互联网科技手抄报图片 互联网的黑科技实验室 互联网新科技 南京欣网互联网络科技有限公司 上游互联网科技 互联网科技生活的内容 银川新华互联网科技职业技术培训学校图片 互联网科技人工智能实验室 广州有谷有贝互联网科技有限公司 抖集互联网科技技术咨询 北京互联网科技类企业分布 10位科技互联网大佬
0