首页 > 代码库 > Lucene中string docvalues使用utf-16的优化

Lucene中string docvalues使用utf-16的优化

原来的string docvalues使用utf-8编码,加载时转码花费大量时间,我们把转码实现从new String(bytes, "UTF-8")改用lucene的bytesRef.utf8ToString,减少了大约十秒的时间。

想进一步优化,我们使用UTF-16LE编码,解码非常简单甚至只需拷贝,如果用简单的byte[]到char[]转换,可以在节省7秒时间,而如果用unsafe可以节省预计15秒以上的时间(没有对全量索引做测试)。