その他 名前が近いっていう検索方法 その1 1


どのスクリプトにも共通して言えると思うが

名前が近いっていう
検索はどうするのだろう?

ここで重要なのは

前(後)方一致とか一部一致とかではなくて

あくまでも、近い ということ

やっぱりしらみつぶしに
探さないといけないのだろうか?

abcdefg という文字列に対して
abc は3文字だけ一致
1b2d3f4 は文字数と3文字が一致

この場合どっちが近いと判断するのか?

文字数を優先すると
後者のほうが近いってことになるのだが

見た感じではabcのほうが近い

ここでの要点は
どれだけ連続して一致していたか?

ではないかな?

だからこの場合は
1b2d3f4 よりも abcが近い

これを元に、検索対象の中から
最も評価が高かったものを
最も名前が近いと判断する

次に

abcdefg という文字列に対して
abcdefg と abcdefghの場合は

両者ともに連続一致では同じ評価になるが
文字列数が違う

連続一致の次は文字列で判断する

では

Xbcdefg と abcdefXの場合はどうか?
連続一致はおなじ、文字数もおなじ
この場合

連続一致が始まった位置が早いほうが
近いと判断したらどうだろうか

こんな感じで評価していけば
最も近い名前が判断できないだろうか?

よし今度つくってみよう


Leave a comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

One thought on “その他 名前が近いっていう検索方法 その1