✅external-completionの並び順を変える
現状
randomに並び替えている
変更後
いろんなページから参照されているページ=重要なページと判断する
Most linkedの値が等しいときは、辞書順に並び替える
ここはrandomでもいいかもしれない
既知の問題
遅延読み込みしたlinkがどうしても候補の後ろになってしまう
正しく反映するには、Linkedの値を保持しておく必要がある
/icons/done.icon不完全ではあるが、計算workerに追加のlinkを渡したあとlinkedで並び替えをもう一度しておこう。
link数が膨大だとなかなか計算が終わらなくなる
13万以上リンクが有る
/icons/done.icon重複を除く処理を先にしていない。それをやろう。
08:59:28 13万から4万に減った。重複が多かったみたい
linkedの計算を並列処理すべきか?
Most Linkedで必ずしも有用な情報が上がってくるとは限らない……
曖昧度順&shuffleのほうがいいのかもしれない
1. link dataを取得
2. 全部shuffleしたあと、分割してworkerに渡す
3. worker側でタイトルの長さ順に並び替える
実装
WebWorker側のみ変更する
取得する値に、linkedを追加する
shuffleを削除、linkedに関してsortを実施する
てかshuffle2回もやってたんかい
WebWorkerとそのnest先のWebWorkers
いらないから全部消そう
07:56:16 linkedの値を取得するために、APIを変える
てかこれなら、Most linked順にしてdataを取得できるのか。
clientで並び替えるより楽だな。そうしよう。
仕方ないので、自前でlinkedを計算するしかなさそうだ
こんな処理で行けるかな?
code:js
const json = {...} // /api/pages/${project}/search/titlesで取得したjson
linkRelations = [
{title: '...', links: ...,}, ...]; // 中身のあるページとそのリンク先ページの情報
// 並び替えをする
const links = temps.map(title => {
return {
title: title,
linked: linkRelations
.filter(relation => relation.links.includes(title))
.length,};})
.sort((a,b) => b.linked - a.linked)
.map(data => /${project}/${data.title});
2020-11-26 07:51:09 実装開始
2020-11-26 08:20:58 実装終了。テストする
/icons/done.icon08:35:30 バグとり終了。しばらくこれで使ってみる
08:56:50 重複処理を前倒しして余計な計算を減らす