問題は、使用しているアナライザーとは関係ありません。Califrna~0.7 を検索すると、Lucene はインデックス内のすべての用語を繰り返し処理し、「Califrna」とすべての用語の間の (レーベンシュタイン) 編集距離を計算します。これは非常にコストのかかる操作です。
この問題は、Lucene バージョン 4.0 で解決される予定です。残念ながら、Solr に付属する Lucene バージョンは、古いブルート フォース アプローチを使用しています。
https: //issues.apache.org/jira/browse/LUCENE-2089
http://java.dzone.com/news/lucenes-fuzzyquery-100-times
よろしければ、Solr/Lucene をトランクからダウンロードして、新しいあいまいクエリがどのように機能するかをテストすることをお勧めします。
http://wiki.apache.org/solr/NightlyBuilds
トランクは安定していますが、本番環境での使用はお勧めできません。2 つの同様の方法を提案できます。
1 - スペルチェッカー
http://wiki.apache.org/solr/SpellCheckComponent
http://www.lucidimagination.com/blog/2010/08/31/getting-started-spell-checking-with-apache-lucene-and-solr/
SpellChecker は、高速なルックアップを実行するために、n-gram を使用して小さなインデックスを作成します。レーベンシュタイン距離も使用していますが、すべての用語を反復する代わりに、関連する用語の距離のみを計算します。
最初に「Californa」のスペル チェッカーを実行する必要があります。「Californa」が提案されます。次に、あいまいクエリを使用せずに、メイン インデックスのクエリで "California" を使用できます。
2- 自動提案
http://wiki.apache.org/solr/Suggester
Suggester コンポーネントを使用して、ユーザー タイプ クエリとして正しいスペルを提供できます。これにより、はるかに高速になります。JaspellLookup クラスによるあいまい検索に対応しています。あいまい検索を有効にするには、JaspellLookup を更新する必要があります。ただし、Wiki は、何を更新する必要があるかについてはあまり述べていません。usePrefix が false に設定されている場合、あいまい検索を実行する必要があると思います。