一覧化のページ/要素で実現するので、もういい
検索結果をページセット化、それを一覧化するページ/要素に渡す。


検索機能の一部。
表示用のデータを生成する。

  • 検索式に適合した部分の整形
    表示されるデータの生成。
  • 検索/ソートに渡すデータを生成する
    ソートキーの生成。
    検索式と対象の適合度合いは検索/スコアリングで。それ以外を生成。

フォーマットは章ごとに適用したい。つまりページごとに適用できればいい?
検索/フォーマットは章などとは無関係にしなければならない?複数行と適合できるように。

実体はマークアップされたテキスト。つまりテンプレート


索引を作るには? Edit

索引はBacklinkを並べたもの。

Backlink(1)
    Backlink(1)を含むページ/名前(1)
    Backlink(1)を含むページ/名前(2)
    …
Backlink(2)
    Backlink(2)を含むページ/名前(1)
    Backlink(2)を含むページ/名前(2)
    …

(または Backlinkでリンクされてるページ/名前 > Backlinkを含むページ/名前


どういうフォーマットルールにするか?

  1. Backlinkを探す。
    検索/フィルタリング
    ページのBacklinkが集まる。それらが存在したページ/名前と結びつけて。
  2. ページ/名前→Backlink)の集合を{Backlink→ページ/名前}の集合に変換する。
    変換が検索/フォーマットの機能?検索/ソートの機能?
    Backlink→ページ/名前の表が得られる。
  3. ページ
    テンプレート

検索/ソート Edit

検索時の順位付け。
何が1位に来るかを定義する。

ソートは検索/クエリーの()内をソートキーにする機能。
「size:([0-9]+)」なら「size:10000bytes」などに適合。「10000」部分でソート。

正規表現と後方参照でソートキーを作るようなもの。
これでページ属性を付けられる。地名とか商品分類とか。利用者に必要十分な範囲の。
説明は「枠や両端を検索してその中身で並べ替えをする機能」

()が複数ある場合は番号順に第1ソートキー、第2…。

(0:[0-9]+)月(1:[0-9]+)日(2:[.*?]) 『(3:.*?)』

なら月>日>曜日>タイトルでソート。

[0-9]+月(8:[0-9]+)日(3:[.*?]) 『.*?』

なら曜日>日付でソート。曜日ごとの表示に。

(10:[0-9]+)月[0-9]+日(2192548:[.*?]) 『(91984388:.*?)』

なら月>曜日>タイトル。月ごとにまとめ、その中で曜日ごとに。同月、同曜日の中でタイトル順にソート。

検索、一覧化 Edit

表の体裁を作るだけの機能以外に、
検索/ソートの機能をこっちに移す。
検索は適合スコア順にページを並べるもの。表はページから特定部分を取り出して、それを並べるもの。
検索結果にページ内容も含める。

特定のページセットをデータソースにして、各ページの特定部分を一覧化。


任意のページやディレクトリを任意数集めて、その中から列(ゆるい付けした値)を取り出し。
列に取り込むのは()にあてはまった部分。

()にはソートキーかどうかの指定ができるように。

列の中にページ名リンクにして入れられるように。

プレビュー Edit

検索語ごとに…前後プレビュー
あるいは箇条書きで「(語)は(プレビュー)」の羅列を見られるように。

ソートと連携 Edit

検索/フォーマットにはソート用のデータ生成も含まれる。

  • ソートキー

機能呼び出し Edit

出力形式を変える機能を呼び出す。

  • 機能/テキスト出力
  • 機能/RSS

…など。

完全一致を強調表示 Edit

検索語や検索タグに一致する項目は強調表示。

方法 Edit

結果一覧部分は単一の機能出力。

一覧部分のフォーマット Edit

一覧部分のフォーマットは機能の設定。機能/一覧。
WikiEngineのものではない。
どう展開するかは各機能のコード次第。

でも機能からWikiEngineのページ/HTML変換は利用できるので、機能が対応していればこのフォーマットにも普通に記法を埋め込める。

第1キーでソート順(ソートキー)を決める Edit

検索結果はランク分け Edit

順位だけでなくその間の開きが分かるように。
色で。
適合率100%〜70%などごとに。
「外せないキーワード」に100%合ったもの…といった区分も。ソート順でこの区分だけを集められるように。

適合率を元にしたカラーバーを1件ごとのフォーマットに入れて実現。
色は0%〜100%までなだらかに変化するグラデーション。結果の中に開きがあればカラーバーにも段差ができることになる。

出力時、検索/フォーマットは処理する側 Edit

フォーマットが持つコードを使用するので。ただのテンプレートではない。
ページセットを与えられるとそれをHTML化。

必要な情報のうち、グローバルなデータはフォーマット自身が集める。
それ以外は?