C9の取引所、FFで言うと競売に当たるソレでは、アイテム名を直接検索することが非常に多い。俺の場合。そして、変なもんにヒットすることも多い。が、慣れると便利な仕様に思えてきた。
この手の検索だと、キーワードを適当にトークン化して部分文字列のANDマッチングを行うことが多いと思う。だがC9では単純に、キーワード中の全部の文字が現れるならマッチ、という仕様のような気がする。’abc’がキーワードだと、’abechan’でも’became’でもヒットするという訳だ。多分。ちゃんと調べてはいないけど。
よくよく考えると、トークン化が一文字ずつ常に分割する仕様(Pythonだとlist(str)
とか、Perlだとsplit(//,str)
だったか)な場合は、同じアルゴリズムになるのか。つーか、漢字かな交じりだからたまたま便利な仕様になっているだけのような気もするし、本来はこういう予定じゃないのかもしれないなあ。修正して欲しくはないけど。
もう一つ気付いたけど、スペース入れててもちゃんとヒットするから、やっぱり狙った仕様じゃないかもなあ。便利だけどなあ。
まあ、ゲーム中の日本語アイテム名検索という極めて狭い用途限定での便利さではありそうだけど、別の用途でも同じ手が使える可能性はあるかも。
追記:
順序も影響してたので(’abc’は’abechan’にはヒットするが’became’にはヒットしない)、やっぱり別のアルゴリズムか。順序も見てるならハングルでも問題出ないだろうし、これはこういう仕様の予感。
再追記:
どうせなら’abechan’と’beckham’にした方が面白かったなあ、とか思った。