В Lucene меня научили новому трюку по оптимизации. Например, часто латинские символы можно хранить экономно (байтами в Java, UTF-8) и обрабатывать быстрее (какими-нибудь маленькими битовыми множествами). Но иногда приходится иметь дело с нелатинскими языками (например, русским). И вот тогда можно запомнить минимальный char из всех строк данного языка, и везде его вычитать из всех остальных. Тогда для не совсем страшных письменностей велика вероятность, что попадёшь в интервал 0..128, и можно экономить.