検索とインデックスのためのUnicode正規化

Unicode正規化を適用して検索精度を向上させる方法を学びます。検索インデックスにNFKCが推奨される理由と、クエリでアクセント付き文字を処理する方法を理解します。

Use Cases

詳細な説明

検索のための正規化

検索エンジンとテキストインデックスシステムは、ユーザーがさまざまな方法でテキストを入力するという現実に対処する必要があります。Unicode正規化は正確な検索のための重要な前処理ステップです。

正規化なしの問題

データベースに"café"がNFC形式で保存されている場合、ユーザーがNFD形式で検索すると、テキストが視覚的に同一でも検索が失敗します。

検索にはNFKC

検索にはNFKCが最適です:正準合成を行い、互換文字を分解して視覚的に類似した文字を等価として扱います。

アクセント非依存検索

function removeAccents(str) {
  return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}
removeAccents("café")  // "cafe"

ユースケース

検索エンジン(Elasticsearch、Solr、MeiliSearch)、データベース全文検索システム、ユーザークエリと保存テキストのマッチングが必要なアプリケーションで使用されます。異なるキーボードレイアウトや入力方法を使用するユーザーに対応する多言語アプリケーションに特に重要です。

試してみる — Unicode Normalizer

フルツールを開く