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


*流れ [#ob994459]

***01 [#k17ccc67]
ページ生成時
+ページ→オブジェクト(検索/クエリーと比較できるクラス。ページの内容を構成するクラス)
保存。永続化。検索時に使えるようにするため。

#br

検索時
+検索式→オブジェクト
検索式(文字列)→オブジェクト(検索/クエリー系クラス)
++オブジェクト選択
比較時、検索/クエリー側のオブジェクト1つとページを構成するオブジェクト1つを選択しなければならない。
検索/クエリー側は評価順が静的に決まっている。
ページ側の順序はページが決めるので後回し。
検索/クエリー側は1回だけ走査。ページ側は検索/クエリーの数だけ繰り返し参照される。
++比較
同じクラスのオブジェクト同士の比較。
検索/クエリーのスコア算出処理にページ側のオブジェクトを渡す→スコア
++スコア加算
検索/スコアリングの方法でページを構成するオブジェクトごとにスコア加算。
+スコア集計・検索結果生成
検索/フォーマットの機能で検索結果に含めるデータと、検索/ソートに渡すデータ生成。
ページ単位で結果を出すなら、ページごとにスコアを集計、ページごとにデータ生成。
+ソート
検索/ソートの機能で検索結果に含めるデータを並び替え。
+検索結果生成
HTML化。これはページ/責務。正確にはページの下位にある検索用WikiFormatの責務。

※スコア加算、集計、ソートが分かれているのは繰り返しの単位や範囲が違うから。

→[[プロトタイピング]]


***02 [#b9fabfcd]
-準備
--検索/クエリー
-絞り込み
--検索/スコアリング
-出力
--検索/フォーマット
--検索/ソート

#br

+検索/クエリー
検索式(文字列)を検索式(オブジェクト)に。ページ構成と同じ型。
+検索/スコアリングで…
ページと検索式を比較。
出力用データを得る。
+検索/フォーマットと検索/ソートで…
出力用データの変換をする。
出力用データの並び替えをする。

※すべて検索/クエリーで作ったオブジェクトの機能で行う。