>>90
選択肢はブルートフォース、n-gram、 形態素解析、マッピングテーブルくらいかな
どれを選ぶかは用途次第

ブルートフォースは「カツカレー」というキーワードとテーブルの列名を1件1件比較して
キーワード内の部分文字列が列名に合致するかどうかを判断していく
めちゃ遅くなるけどデータ量と要求速度によってはこれでいい場合もある

n-gramで例えば文字単位で3文字ずつのまとまり(trigram)に分解すれば
「カツカレー」は「カツカ」「ツカレ」「カレー」の3つになる
この3つのキーワードともとの単語でテーブルを検索して合致するものがあるかどうか見る

形態素解析はそれ用のライブラリ使って
「カツカレー」を「カツ」と「カレー」という単語単位に分解して検索する

マッピングテーブルは
「カツカレー」というキーをマスタテーブルの「カレー」にマッピング
「カツ」にマッピングしたりする可能性もあるから1対多