ハースストーン日本語版対応のカード検索ページを作りました

 ハースストーン日本語版で好きなカードのヴォイスは、「サーベルのドルイド」の『我が咆哮を聞け!ガウ!』ってところです(挨拶)。

 というかお久しぶりです。
 表題の件ですが、ハースストーン日本語版対応のカード検索ページを作りました。

ハースストーン日本語版対応 カード検索

 Hearthstone DojoのGoNinjaさんがGoogleドキュメントの形で公開している日本語対応カードリストのデータを元に、ハースストーンのカードを検索します。
 日本語と英語の両方の文字列で検索できるようにしてあるので、「英語のカードの日本語名を調べたい」「日本語名のカードが英語では何て名前なのか調べたい」という両方のニーズに対応できるのがウリです。
 スマートフォンでも使えるようにしてあったり、ブラウザのブックマークに登録するとポップアップウィンドウで表示されるようになったりしているので、必要だと思った方に使っていただけるとありがたいです。

 技術的には、文字列検索はMySQLの全文検索機能を使っています。
 MySQLの全文検索は日本語に対応していませんので、いわゆるNGRAMで文字列を分割して検索キー用の項目に登録するパターンを使っています。レコード件数は1200件程度なので、これくらいの量ならLIKE検索でもパフォーマンス的には問題ないのですが、将来性を見越して一応。

 検索文字列が英文の場合はNGRAMにする必要はないのですが、MySQLの全文検索には

  • (標準設定では)4文字未満の検索語は無視される
  • 「ストップワード」と呼ばれる英語に頻出する文字列は検索対象にならない

 という仕様があるため4文字未満の英単語(impとか)や、ハースストーンのカード名の中でストップワードに含まれる文字列(“inner rage”のinnerとか)が検索できないので、4文字未満の検索ワードや、ストップワードに含まれそうな文字列については、全文検索ではなくそのままLIKE検索で処理しています。
 検索語の長さやストップワードについては、MySQLの管理権限を持っていれば対応できるのですが、使っているのがロリポップのレンタルサーバなので(以下略)。いつかはちゃんとVPSなサーバに移行してやりたいところですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です