第3回では、サジェスト検索の実現手段としてAjaxによる画面制御を取り上げた。今回は、Ajaxの最大の特徴である非同期処理を支えるサーバサイドの処理制御を紹介する。 サジェスト検索におけるサーバサイド処理の要件 サジェスト検索のサーバサイドへの検索要求は非同期に行われる。例えば、次図のような「綺麗に撮った」という文章入力を行っているとき、サーバサイドには、「k」、「きれいに」、「綺麗に」というように、入力の進行状況に合わせて検索キーワードが次々と送信される。
第3回では、サジェスト検索の実現手段としてAjaxによる画面制御を取り上げた。今回は、Ajaxの最大の特徴である非同期処理を支えるサーバサイドの処理制御を紹介する。 サジェスト検索におけるサーバサイド処理の要件 サジェスト検索のサーバサイドへの検索要求は非同期に行われる。例えば、次図のような「綺麗に撮った」という文章入力を行っているとき、サーバサイドには、「k」、「きれいに」、「綺麗に」というように、入力の進行状況に合わせて検索キーワードが次々と送信される。
きっかけは レーベンシュタイン距離 - shin5papaの日記 http://d.hatena.ne.jp/shin5papa/20090311/1236745197 レーベンシュタイン距離とN-gramモデルで、擬似的なGoogle Suggestレーベンシュタイン距離を使うことによって、擬似的にGoogle先生の「もしかして」とか、 Google Suggestっぽいことができそうかなーと思って、面白そうなのでお勉強してみた。 PHPでは標準で関数があるのかー。んー、面白いですねコレ。ということで、さっそくC#で書いてみることにしました。 ただ、このレーベンシュタイン距離のみの判定だけでは、距離が等しい結果が複数あるような場合の結果が、 イマイチ納得のゆくものにはならなかったので、更に N-gram *1による共起頻度での判定も併用することにしました。 Wikipedia - レーベ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く