Send to your Kindle *検索はQueryクラスで [#k44496c6] -1単語あたりの評価はNotationに任せる ページもクエリーもNotationの集まりなので、Notation同士で1単語分の類似度評価。それを繰り返して1ページ分の評価にする。 [[code*:375]] -呼び出しはコントロールクラスのUseCase 類似度判定なので、リンク先を含む検索はリンクの書式と同じ書き方 キーワード1 (Notation/Linkと同じ表現で)[[曜日:*]] [[曜日:*]]は、リンク名(というか種類というかタグ)が「曜日」で、リンク先はなんでも可。 | ※ワイルドカードが必要。 検索結果のソートはNotation/Sortと同じ表現で。 検索結果のフォーマットはNotation系か検索結果ページのテンプレートから選択して1つ指定。 要、評価順。 リンク元と比較するキーワードと、リンク先と比較するキーワードが混在するので。元→先の順に書くことにして、左から評価。 **表現 [#n4ddb66a] 書き方を 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]]と同じ。 ---- **?付きの検索語 [#v637819c] 結果のソート順にのみ影響する?付き単語。 1 AND 2? OR 3 ↓ 1 OR 3 2? と同じ。 AND 2?、OR 2?、NOT 2?、どれも2?になる。 というわけで、「?付きは最後につけた方が分かりやすくなります」 **先に書いた方が高スコア [#u2031472] 検索式の各語は先に書いた方がやや高スコア。(スコアに加味される他の要素よりも影響小) ''例'' A B C ''順位'' +A、B、C すべてを含むページ +A、B を含むページ +A、C を含むページ +B、C を含むページ +A だけ含むページ +B だけ含むページ +C だけ含むページ …となる。 **AND、OR、NOT、()()も有効に [#hd5c6c59] 一般的なので。 **基本的に部分一致。(プログラムからの検索の時も) [#j44afa1e] 完全一致にするには""か「」で。 **検索結果をさらに検索 [#h0d9f84b] 検索結果をさらに検索するには、検索結果をWikiテキストにしてページ化。 それが検索対象になればいい。 **検索時、入力するのも記法 [#g5bb9ea4] 全てがページ。 ただし、検索では複数ページにヒットする検索式を書けるので、特別な処理でそれを1ページ分ずつ分割。 RIGHT:[[:t/プロトタイピング]] [[:t/検索]] #contents *検索はQueryクラスで [#k44496c6] -1単語あたりの評価はNotationに任せる ページもクエリーもNotationの集まりなので、Notation同士で1単語分の類似度評価。それを繰り返して1ページ分の評価にする。 [[code*:375]] -呼び出しはコントロールクラスのUseCase 類似度判定なので、リンク先を含む検索はリンクの書式と同じ書き方 キーワード1 (Notation/Linkと同じ表現で)[[曜日:*]] [[曜日:*]]は、リンク名(というか種類というかタグ)が「曜日」で、リンク先はなんでも可。 | ※ワイルドカードが必要。 検索結果のソートはNotation/Sortと同じ表現で。 検索結果のフォーマットはNotation系か検索結果ページのテンプレートから選択して1つ指定。 要、評価順。 リンク元と比較するキーワードと、リンク先と比較するキーワードが混在するので。元→先の順に書くことにして、左から評価。 **表現 [#n4ddb66a] 書き方を 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]]と同じ。 ---- **?付きの検索語 [#v637819c] 結果のソート順にのみ影響する?付き単語。 1 AND 2? OR 3 ↓ 1 OR 3 2? と同じ。 AND 2?、OR 2?、NOT 2?、どれも2?になる。 というわけで、「?付きは最後につけた方が分かりやすくなります」 **先に書いた方が高スコア [#u2031472] 検索式の各語は先に書いた方がやや高スコア。(スコアに加味される他の要素よりも影響小) ''例'' A B C ''順位'' +A、B、C すべてを含むページ +A、B を含むページ +A、C を含むページ +B、C を含むページ +A だけ含むページ +B だけ含むページ +C だけ含むページ …となる。 **AND、OR、NOT、()()も有効に [#hd5c6c59] 一般的なので。 **基本的に部分一致。(プログラムからの検索の時も) [#j44afa1e] 完全一致にするには""か「」で。 **検索結果をさらに検索 [#h0d9f84b] 検索結果をさらに検索するには、検索結果をWikiテキストにしてページ化。 それが検索対象になればいい。 **検索時、入力するのも記法 [#g5bb9ea4] 全てがページ。 ただし、検索では複数ページにヒットする検索式を書けるので、特別な処理でそれを1ページ分ずつ分割。