• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(検索,設計);

#contents

*流れ [#ob994459]
検索/フォーマット、検索/ソートはプラグインで。いくつでも何種類でも組み合わせて。
検索/フォーマット、検索/ソートは機能で。いくつでも何種類でも組み合わせて。

検索/フィルタリングが検索特有の処理。
検索/スコアリング、検索/フォーマット、検索/ソートは汎用のプラグインで。
検索/スコアリング、検索/フォーマット、検索/ソートは汎用の機能で。

検索/クエリーはページ/作成処理の一部。
**ページ生成時 [#l95b1a28]
+ページ(文字列)→ページ(オブジェクト)
保存。永続化。検索時に使えるようにするため。

#br

**検索時 [#x7261d2e]
+検索式→オブジェクト
検索式(文字列)→検索式(オブジェクト)
ページ(オブジェクト)と同じ型。比較するため。
++オブジェクト選択
比較時、検索/クエリー側のオブジェクト1つとページを構成するオブジェクト1つを選択しなければならない。
検索/クエリー側は評価順が静的に決まっている。
ページ側の順序はページが決めるので後回し。
検索/クエリー側は1回だけ走査。ページ側は検索/クエリーの要素数だけ繰り返し参照される。
++比較
同じクラスのオブジェクト同士の比較。
検索/クエリーのスコア算出処理にページ側のオブジェクトを渡す→検索/スコアリング
++スコア計算
検索/スコアリングの方法でページを構成するオブジェクトごとに計算。
計算方法は検索/クエリーに含まれる修飾句オブジェクト次第。
**検索時(オプション) [#p279b843]
検索以外にも使えるプラグインで。
検索以外にも使える機能で。
順序も組み合わせも自由。

+出力用データ生成
検索/フォーマットの機能で検索結果に含めるデータと、検索/ソートに渡すデータ生成。
ページ単位で結果を出すなら、ページごとにスコアを集計、ページごとにデータ生成。
+ソート
%%検索/ソートの機能で検索結果に含めるデータを並び替え。%%
→検索/ソートはプラグイン/表に移す。
→検索/ソートは機能/表に移す。

----
で、検索結果生成。
HTML化。これはページ/責務。正確にはページの下位にある検索用記法の責務。

※スコア加算、集計、ソートが分かれているのは繰り返しの単位や範囲が違うから。
※すべて検索/クエリーで作ったオブジェクトの機能で行う。

→[[プロトタイピング]]
*コード [#xd31fa4e]
→[[検索/流れ/コード]]