scrapboxのリンクサジェスト、とても速くないか?
/shokai/QuickSearchの情報を参考に/takker/external-completionの検索機能を作っているけど、速さが全然追いついていない
裏でいろんな最適化を施しているのかなあtakker.icon
単に自分のprogramming skillがガバなだけでは
リンクサジェストでは文字単位の歯抜けマッチングは行なわれてないと思う
scrpboxはScrapboxにマッチするけどscrboxだとダメ
いや、jscrがJavaScriptにマッチしたりするしよく分からない……
二文字誤りはマッチしない、ということでもなさそうですね……
/takker/fizzSearchで使っているASearchを部分一致にも使えるように修正したいのですが、方法がわからない……
現状だと、jabascriptはJavaScriptにマッチするけど、
javaはJavaScriptにマッチしない
new Asearch(' ' + word + ' ')という感じで前後にスペースを入れると良さそうkokutousha.icon
スペースの部分は何にでもマッチする
new Asearch(' java ').match('javascript') // => true
new Asearch(' jscr ').match('前後にJavaScript文字を入れてみたり', 1) // => true
/icons/まじかよ.icontakker.icon
今すぐ試す!
15:40:44 できた
歯抜けマッチングを除いた分、多少速くなったかもしれない
テスト: scrapbox
/icons/pass.iconscrp
一文字脱字
部分一致
/icons/pass.iconscrpbox
一文字脱字
完全一致
/icons/pass.iconscrbox
二文字脱字
完全一致
/icons/fail.iconscrbx
二文字脱字+間飛ばして一文字脱字
/icons/pass.iconscrx
三文字脱字
/icons/pass.iconscr bx
二文字脱字+間飛ばして一文字脱字
スペース区切り
/icons/pass.iconbx scr
順序が逆
性能には関係ないかもしれませんが、flatMap相当の処理をmap.reduceで書いてるのも気になる
/takker/fizzSearchとか
flatmap の存在を知らなかった……takker.icon
早速書き換えました
ご存知かもしれないですが、/shokai眺めてたら面白いページを見付けたので
/shokai/検索や推薦をWebWorkerでやる
そうそう、これを参考にしてWebWorker処理を実装しましたtakker.icon
/shokai/async-singletonだけ使い方がいまいちよくわからなかったので、別のalgorithmで実装しました
/takker/singletonWorker
#別プロジェクトのページを入力補完するUserScript