asciifolding の 1→N 展開(Æ→ae 等)は ngram tokenizer と組むと文字単位 span_term で取りこぼす
バックエンド
設計
検索
Lucene asciifolding には Đ→D のような 1→1 マッピングと、Æ→ae/ß→ss/Œ→oe のような 1→N 展開がある。ngram tokenizer の後に asciifolding を適用する構成では、Æ が ngram で分割された各トークンに対し ae のような複数文字へ展開される。一方クエリ側を「正規化後の文字列を1文字ずつ span_term に分解」して span_near で組むと、a と e の個別 span_term がインデックス側の ae トークンと一致せずヒットしない。つまり 1→1 マッピングは文字単位 span_term で動くが、1→N 展開は token graph の不整合で対応できない。スコープを 1→1 に絞り、1→N はテスト・ドキュメントで明示的に未対応とするのが現実的な判断。