tantivy&lucene功能,写入性能对比

Posted vsop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tantivy&lucene功能,写入性能对比相关的知识,希望对你有一定的参考价值。

硬件概述:cpu:24,内存:20g,磁盘:10*2.7T。

写入性能:(不对ip进行添加geo信息)。

写入性能对比

速度

Commit耗时(秒)

500*1000条

Bulk耗时(秒)

1000条dns

Bulk耗时(秒)

1000条tcpflow

Bulk耗时(秒)

1000条weblog

Cpu占用

磁盘使用

数据量tcpflow

线程配置

tantivy

155272

6-19

0.01-0.06

0.1-0.2

0.1-0.2

40-80 us, 5-15 sy

20-90

4_000_000条,870M

10*2+10*2*3

lucene

151633

3-4

0.2-0.3

1.3-1.4

1.3-1.4

60-80 us, 5sy

20-90

4_500_000条,1.3G

10*5

 

 

 

 

 

 

 

 

功能:

Query:查询功能。

Query

TermQuery
BooleanQuery
WildcardQuery
PhraseQuery
RangeQuery
FuzzyQuery
RegexpQuery
ConstantScoreQuery
PrefixQuery

tantivy

Y

Y

Y

Y

Y

Y

Y

Y

N

lucene

Y

Y

Y

Y

Y

Y

Y

Y

Y

 

Collector:用来在查询时获取doc的field信息,用来排序,过滤,聚合等。

Collector
TopCollector
TimeLimitingCollector
CountCollector
tantivy
Y
N
Y
lucene
Y
Y
N

 

Docvalues/fastfield:通过docvalues获取doc的field信息,用来排序,过滤,聚合等。

 

Docvalues/fastfield

tantivy
fastfield(目前仅支持数字)
lucene
Docvalues

 

IndexWriter: 写数据。

IndexWriter

Flush(不fsync,数据可能在buffer)

Commit(fsync到磁盘)

tantivy

N(目前未发现)

Y

lucene

Y

Y

 

总结:

功能

tantivy已实现了lucene的大多数功能。具体差异见上表。

 

写入性能

整体写入性能相近。

bulk索引数据时,tantivy速度快于lucene。

执行commit时,tantivy不如lucene,详见写入性能。

 

磁盘占用

磁盘占用相差不大,详见写入性能。

以上是关于tantivy&lucene功能,写入性能对比的主要内容,如果未能解决你的问题,请参考以下文章

Lucene解析 - 基本概念

Solr&Lucene --- 排序

1.Lucene简介

如何将 lucene 的 ByteBuffersDirectory 写入/序列化到磁盘?

使用Lucene的java api 写入和读取索引库

8个基于Lucene的开源搜索引擎(推荐)