目次 Edit

 
 

関連 Edit

 
 

検索:フォーマット

 

フォーマット周辺のタグ Edit

Array
 

検索/フォーマット Edit

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

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

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

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

索引を作るには? 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

出力形式を変えるプラグインを呼び出す。

…など。

完全一致を強調表示 Edit

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

実装 Edit

結果一覧部分は単一のプラグイン出力。

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

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

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

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

検索結果はランク分け Edit

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

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

設計 Edit

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

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

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