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