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,详见写入性能。
磁盘占用
磁盘占用相差不大,详见写入性能。