takker99/scrapbox-incremental-fulltext-search
描画がはみ出るなどのバグもつぶす
scrapbox内検索構想
fetchのタイミング
1文字以上入力されたら即座にfetch
fetchしたpromiseが終わったら、その時点での新しいqueryで再度fetchする
新しいqueryがなくなるまで繰り返す
ユーザー待機時間の体験改善
fetch中に更新されたqueryがその前のqueryを完全に含む場合は、client側で前回の検索結果内のテキストから部分一致検索する
fetch中のpromiseが解決されたら、順次fetchしてserverからの全文検索結果で更新する
request数の上限が厳しい
必ず1度に1回ずつ叩く
次のqueryをfetchしたいときは、前回のが終わるのを待ってからfetchする
横断検索結果が返ってきたら、その中のprojectsを順次全文検索する
検索するprojectの範囲
その時開いているprojectをまず全文検索する
その後、最近検索orアクセスした順に、他のprojectを直列or2つずつくらい全文検索する
現在のqueryと類似するqueryを過去に見つけたprojectsがあれば、それらを先に検索する
データソース用特殊query
cosense:project
/project内検索
複数projectを入れるときは、cosense:project1,project2とする
source:gyazo
gyazo内検索
defaultで全て検索、sourceの絞り込みを簡単に選べるボタンも入れてもいいかもしれない
横断検索のfuzzy selectの開閉がうまくいかなかったのと、現状だとapi/projectsを大量に叩く必要があったため いずれ実装とUI設計を作り直す
code:mod.tsx