sqlce-database を搭載したモバイル デバイスに ac# アプリケーションがあります。
データベースには、都市名または住所を検索したい大きなテーブルが 1 つあります。問題は、都市名が異なるソースからのものであるか、別の人によって挿入されたものであるため、都市にはたとえばSaint XXX、St. YYY、およびSt ZZZが含まれていることです。
私の検索では、 fpr St XXXを検索するか、Saint XXXを検索するかは問題ではありません。結果は同じはずです
もちろん、この問題はセイントという用語だけで発生するのではなく、単なる例です。どのくらいかはまだわかりませんが、さまざまな用語がたくさんあります。
交換など、いくつかのアプローチがありました
SELECT REPLACE(REPLACE(name,'St.','Saint'),'St','Saint') FROM cities WHERE name = REPLACE(REPLACE(@SearchTerm,'St.','Saint'),'St','Saint')
でも出来はイマイチ。
またSoundEx
、Saint と St はまったく似ていないため、必要な結果が得られません。
都市名は外部データソースから (mergereplication によって) 取得されるため、サーバー上で更新することはできず、都市名を更新したくありませんが、db に保存されているとおりに使用します。
ニーズに合わせて検索するにはどうすればよいですか?