全部产品
Search
文档中心

云原生数据库 PolarDB:PolarSearch 1.0性能测试结果

更新时间:Apr 23, 2026

本文介绍PolarSearch 1.0版本在HTTP logs、NYC taxis与Geonames三个标准负载下的OpenSearch Benchmark性能测试结果。

说明

具体测试步骤请参见PolarSearch基准性能测试方法

写入性能测试结果

写入测试使用 append-no-conflicts-index-only test procedure,将完整语料批量写入集群,评估在不同并发写入客户端数(bulk_indexing_clients)下的写入吞吐量(docs/s)。每轮测试均从空索引开始。

HTTP logs写入性能

数据集基于1998年世界杯期间真实Web服务器访问日志,包含约2.47亿条日志记录。

  • 测试场景 1:shard 6,replica 1

    HTTP logs Throughput(docs/s)

    Client 1

    Client 2

    Client 4

    Client 8(默认)

    Client 16

    Client 32

    PolarSearch 1.0

    127860

    197938

    324857

    454070

    466709

    469483

  • 测试场景 2:shard 6,replica 0

    HTTP logs Throughput(docs/s)

    Client 1

    Client 2

    Client 4

    Client 8(默认)

    Client 16

    Client 32

    PolarSearch 1.0

    172384

    288195

    512037

    741541

    783537

    785893

NYC taxis写入性能

数据集基于2015年纽约出租车行程数据,包含约1.65亿条记录。

  • 测试场景1:shard 6,replica 1

    NYC taxis Throughput(docs/s)

    Client 1

    Client 2

    Client 4

    Client 8(默认)

    Client 16

    Client 32

    PolarSearch 1.0

    77098

    113670

    183412

    259955

    271045

    272685

  • 测试场景 2:shard 6,replica 0

    NYC taxis Throughput(docs/s)

    Client 1

    Client 2

    Client 4

    Client 8(默认)

    Client 16

    Client 32

    PolarSearch 1.0

    126167

    187151

    311023

    451135

    482505

    488001

搜索性能测试结果

搜索测试在写入完成后执行,replica=1target_throughput=0(全速压测模式),评估CPU满载情况下的搜索吞吐量上限(ops/s)。

HTTP logs搜索性能

term — 倒排索引精确查找

logs-*上做精确词项匹配,命中量固定为10,000 条,返回默认10条。考察PolarSearch 1.0版本倒排索引查找效率、跨shard扇出合并开销以及网络协调层处理能力。

HTTP logs term(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

148

312

591

829

1147

1475

asc_sort_timestamp — doc values排序

对全量文档执行match_all + 按时间戳升序排序,返回前10条。@timestamp为date类型,按照doc values列式存储排序。考察PolarSearch 1.0版本doc values读取效率、top-N堆排序及协调节点合并能力。

HTTP logs asc_sort_timestamp(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

133

262

443

579

732

931

range — 时间范围扫描

@timestamp字段执行动态时间窗口range查询。日志产品90%的查询均带时间过滤,该task考察日期范围扫描效率,与term形成点查与范围查的互补对比。

HTTP logs range(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

106

269

431

573

707

815

hourly_agg — 时序聚合

对全量文档执行date_histogram(按小时分桶)。考察date类型聚合吞吐,是日志监控与统计场景的核心操作。

HTTP logs hourly_agg(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

1.48

2.97

4.3

4.76

4.8

4.8

NYC taxis搜索性能

match-all — 基础调度基线

对全量约1.65亿条记录执行match_all,仅返回默认10条,无排序、无聚合。考察引擎请求解析、shard调度及结果序列化的基础路径效率。

NYC taxis match-all(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

281

564

1115

2022

3167

4508

range — 数值范围扫描

total_amount(车费金额,scaled_float类型)执行固定数值范围过滤,查询车费在5~15美元之间的行程,返回默认10条。考察数值字段范围扫描效率。

NYC taxis range(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

10.63

21.07

39

43

43

43

autohisto_agg — 自适应时间聚合

对20天时间窗口内的数据执行auto_date_histogram(自动分桶,buckets=20),考察引擎自适应聚合能力。与range形成互补(range是数值范围查询,auto_date_histogram是时间范围聚合)。

NYC taxis autohisto_agg(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

17.55

37.64

64.55

73.38

74

75.84

Geonames搜索性能

Geonames数据集基于全球地名兴趣点数据,包含约1,140万条记录,涵盖地名、国家代码、人口数量及地理坐标等字段,主要考察各产品的多类型查询能力。其中,Geonames数据集规模远小于HTTP logs和NYC taxis,写入耗时短,PolarSearch 1.0版本写入性能差异不显著,不具备对比价值。因此Geonames测试重点聚焦于搜索场景,通过覆盖精确查询、全文检索、聚合统计、地理空间及脚本评分等多个维度,全面评估各产品的查询处理能力。

term — 精确词项匹配

Geonames term(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

434

866

1615

2887

4433

5755

phrase — 全文短语匹配

考察全文检索中的短语匹配能力,需要在倒排索引中校验词项位置信息,计算复杂度高于term查询。

Geonames phrase(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

408

782

1341

2523

3737

4925

country_agg_uncached — terms 聚合 + 嵌套子聚合

对全量文档执行terms聚合(按国家代码分桶)+ 嵌套sum子聚合,聚合缓存禁用以反映真实计算开销。该任务是计算密集型聚合场景的代表,考察引擎在重聚合场景下的CPU利用效率。

Geonames country_agg_uncached(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

12

24.62

45

50.55

51

51

decay_geo_gauss_function_score — 地理距离衰减评分

基于geo_point字段执行地理距离衰减函数评分查询(Gaussian 衰减),综合考察地理空间索引查询效率与评分计算能力。

Geonames decay_geo_gauss(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

5

9.73

17

18.62

19

19

painless_static — Painless 脚本自定义评分

使用Painless脚本对每条文档执行自定义评分计算,脚本预编译后以静态方式执行(static binding)。该任务考察引擎脚本执行引擎(JIT 编译)的计算吞吐,是高自定义评分场景的典型代表。

Geonames painless_static(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

5.52

10.85

19

20.89

21

21

desc_sort_population — doc values 数值排序

对全量文档按population(整数类型)降序排序,返回前10条。按照doc values列式存储完成排序。考察数值字段列式读取效率及top-N排序性能。

Geonames desc_sort_population(ops/s)

Client 1

Client 2

Client 4

Client 8

Client 16

Client 32

PolarSearch 1.0

250

464

864

1451

1960

2469