昔、Unicodeもない時代に全文検索エンジン作ったことがあるが
インデックス作るのにもマッチング用に符号圧縮したデータ作るのにも
設計がめんどいわ処理時間がかかるわだろうから
Shift_JISデータから16bitのデータに一旦変換してからそういったデータを作成するようにしてたわ

要件が検索漏れゼロ、ノイズゼロ、なおかつメディアは超トロイCD-ROMという
ありえない滅茶苦茶な内容だったからな

インデクサは大富豪な設計でないとやってられなかった
インデックス作成にリアルタイム性が要求されなかったからまだ救いがあったともいえる

その全文検索エンジンはインデックスを大きくすればするほどインデックスが大きくなるかわりに
最悪のケースの速度が速くなるという仕様にした(最低限必要な性能の要求水準に応えるため)
インデックスを大きくするということはインデックスを作るのに当然時間がかかるということになる
いまはそれもとてつもなくデータが増えてDVDになってる
インデックスもものすごい大きくなってる

で、その最悪のケースというのは、
符号圧縮されたデータをマッチングする回数が増えることを意味する

マッチングの条件はマッチングキーワードから生成するインデックスに含まれる符号圧縮された符号の組み合わせになる
そのマッチングアルゴリズムにBMHを使うことになる