gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

そろえて検索

んと。よくあるのですが…
・ある項目について、ある程度曖昧に検索をしたい
・複数のタプルに渡る情報から検索した(いわゆる全文検索
なんていう時に。丁寧に作ると、結構すごい事になります。
つまり
・n個のタプルに対して
・それぞれ、そのまま、文字の加工(英数を半角にとか、大文字小文字とか、半角全角のカタカナひらがなとか)を数種類
とかってやってたり。
…すると、DBの中ではものすんごい量の処理が走ります。エコの観点からあまり好ましくありません(ナニカガチガウ…)。


んぢゃどうするか。
まず、DBに「find_string」とかいう怪しい項目を追加します。サイズは可能な限りでっかく。
で、ここに「検索したいタプルの情報を全部足し算してぶち込む」ですが、ここで一工夫。
・文字列を整頓する
です。つまり
・英数の全角は半角に
・英字は全部小文字に
・半角及び全角のカタカナは全角のひらがなに
・検索で潰したい文字を消去(★とか♪とかって言われた事がある
・その他お好きなエフェクトを
で。つなげる時に「半角のスペース」でつなげると、変な続き文字が出来ないのもポイント。


本当に理想なのは
・PKとfind_stringだけのテーブルを別途設ける
感じ。で、そのテーブルを「別DB鯖」あたりに追いやると完璧w


ちょっとした工夫で素敵な奥様になれますw
是非一度おためしあれ。