- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- :i/プロトタイピング/01/検索 へ行く。
検索はQueryクラスで † 
- 1単語あたりの評価はNotationに任せる
ページもNotationの集まりなので、Notation同士で1単語分の類似度評価。それを繰り返して1ページ分の評価にする。
code*:375 - 呼び出しはコントロールクラスのUseCase
類似度判定なので、リンク先を含む検索はリンクの書式と同じ書き方
キーワード1 (Notation/Linkと同じ表現で)[[曜日:*]]
[[曜日:*]]は、リンク名(というか種類というかタグ)が「曜日」で、リンク先はなんでも可。
|
※ワイルドカードが必要。
検索結果のソートはNotation/Sortと同じ表現で。
検索結果のフォーマットはNotation系か検索結果ページのテンプレートから選択して1つ指定。
要、評価順。
リンク元と比較するキーワードと、リンク先と比較するキーワードが混在するので。元→先の順に書くことにして、左から評価。
表現 † 
書き方を
Page(ページ名検索キーワード) → ページ名リスト
Exist(ページ内容検索キーワード, 検索対象とするページ名リスト) → ページ名リスト
Filter(ワイルドカードを含むキーワード, 検索対象とするページ名リスト) → ワイルドカード部分リスト
とすると
Exist(『減』, Page(Filter([[1日前:*]], Exist(『増』, Page(*)))))
で
((『増』が記録されているページ)の1日前)で『減』が記録されているページ
つまり『減』が記録されているページを取得することになる。
これをより分かりやすく、間違えにくい表現にすると?
『増』のあるページと1日前つながりで『減』のあるページ
『増』 1日前つながり 『減』
『増』 1日前→ 『減』
検索語 | 解析するクラス | 対象ページ | 一致する文字列 |
『増』 | Notation/PlainText | 全ページ | 『増』 |
1日前→ | Notation/Link | 全ページ(または『増』を含むページ) | [[1日前:.*]] |
『減』 | Notation/PlainText | 『増』を含むページ | 『減』 |
1つのページと同じ表現ができるなら、検索クエリーからページ構築→類似度判定1回で済むが、複数ページがどうリンクされているかまでは表現できない。
そのため、検索クエリーにはページ編集時とは違う特別な解析が必要になる。
解析後(単語ごとの分割と、処理順の決定後)はcode*:375と同じ。
?付きの検索語 † 
結果のソート順にのみ影響する?付き単語。
1 AND 2? OR 3
↓
1 OR 3 2?
と同じ。
AND 2?、OR 2?、NOT 2?、どれも2?になる。
というわけで、「?付きは最後につけた方が分かりやすくなります」
先に書いた方が高スコア † 
検索式の各語は先に書いた方がやや高スコア。(スコアに加味される他の要素よりも影響小)
例
A B C
順位
…となる。
AND、OR、NOT、()()も有効に † 
一般的なので。
→ AND、OR、NOT処理[?]
基本的に部分一致。(プログラムからの検索の時も) † 
完全一致にするには""か「」で。
検索結果をさらに検索 † 
検索結果をさらに検索するには、検索結果をWikiテキストにしてページ化。
それが検索対象になればいい。