- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- :/検索/クエリー へ行く。
- 1 (2007-12-30 (日) 02:57:50)
- 2 (2008-01-01 (火) 03:01:48)
- 3 (2008-02-11 (月) 15:29:56)
- 4 (2008-02-20 (水) 01:39:17)
- 5 (2008-09-28 (日) 00:01:13)
- 6 (2008-09-28 (日) 00:09:25)
- 7 (2008-09-28 (日) 01:01:41)
- 8 (2008-11-08 (土) 23:08:13)
- 9 (2008-11-08 (土) 23:19:06)
- 10 (2008-11-09 (日) 01:14:45)
- 11 (2008-11-23 (日) 23:01:05)
- 12 (2009-11-07 (土) 01:17:01)
- 13 (2010-11-21 (日) 21:11:32)
- 14 (2011-01-14 (金) 08:28:48)
- 15 (2011-01-16 (日) 11:34:09)
- 16 (2011-01-17 (月) 17:30:55)
- 17 (2011-02-08 (火) 19:14:28)
- 18 (2011-02-14 (月) 15:46:14)
- 19 (2011-02-19 (土) 19:16:47)
- 20 (2011-03-02 (水) 11:31:59)
- 21 (2011-09-08 (木) 13:25:55)
- 22 (2011-09-08 (木) 13:39:26)
- 23 (2011-09-08 (木) 15:20:19)
- 24 (2011-09-08 (木) 16:06:56)
- 25 (2011-09-10 (土) 02:45:42)
- 26 (2011-10-28 (金) 09:07:32)
- 27 (2011-12-14 (水) 01:29:17)
- 28 (2012-09-20 (木) 06:52:11)
- 29 (2012-09-20 (木) 07:38:42)
- 30 (2013-02-06 (水) 01:52:09)
- 31 (2013-02-21 (木) 23:57:46)
- 32 (2013-03-20 (水) 22:39:00)
- 33 (2013-09-12 (木) 09:07:10)
- 34 (2014-03-12 (水) 16:10:23)
- 35 (2014-03-22 (土) 09:23:52)
- 36 (2016-04-04 (月) 20:31:14)
- 37 (2020-10-31 (土) 11:02:23)
目次 † 
関連 † 
クエリー周辺のタグ † 
Array
検索/クエリー † 
モデリング † 
検索クエリーはオブジェクト † 
検索ワードにクラス名を併記すると、同じ型のオブジェクト(を含むページ)にのみ適合。
date:200612
date:2007-20080331
…など。
検索ワード→オブジェクト。このオブジェクトとページ内のオブジェクトで「近さ」を求める。
クラス名の無い検索ワードは文字列として扱い、オブジェクトの文字列表現と比較。適合する。
ページ内が入れ子になっているので平たい構造にしてから比較。
入れ子構造まで合わせるとなると使いにくいため。
Visitor † 
クエリーを保持し、ページ/ツリー内にある各ページに同じ処理をする。
これはVisitor。
ループ制御はページで。比較はこっちで。
検索/クエリーの内部はオブジェクト化したページと同じ † 
比較できるようにするため、検索/クエリーを構成するオブジェクトとページを構成するオブジェクトは同じクラス。
検索/クエリーはオブジェクトの集約。
検索/クエリーの要素1つに対して、ページを構成する要素全てを突き合わせる。
適合する単位 † 
一般的な考え方だとページ単位。検索式に適合したページを検索結果に出す。
こちらではページを構成するオブジェクト単位で。
1つのページにいくつも適合箇所が生じる。
それらを全て表示するか、ページごとに1つだけ表示するかは検索/フィルタリングの役目。
検索/クエリーを構成する要素 † 
オブジェクト。ページを構成するWikiFormat系オブジェクトと同様、テキストから作られるオブジェクト。
というわけで、プラグイン呼び出しのみ検索とか、日付だけ検索などが可能。
比較の仕方はそれぞれのオブジェクトの責務。後で考えればいい。
ただし、ページ内のWikiText→オブジェクトのルールとは違う可能性あり。
検索式ではスペースや句読点を区切りにするし、表記法を変えることも考えられるから。
つまり別のルールで。ただし同じクラスで。
というわけで、検索/クエリーはページ/内容を表すオブジェクトと同じクラスの集約。
つまり検索は検索式をページ化して、他のページとの類似度を算出する処理。
「ホットな記事、クールな記事」は † 
「ホットな記事」は新しさを評価する検索/クエリーを導入すればいい。
スコア制 † 
検索/クエリーに適合するとスコアが算出される。
適合した要素に加算。(ページではない)
後でページ単位で集計したり、要素単位のままスコアを参照したりするのは検索/フィルタリングの役目。
検索/クエリーはプラグイン † 
- 正規表現を与えて利用できる汎用なもの
- プログラムで定義、特殊な評価方法をするもの
…で。
date:2007/11/1
という検索式から
dateオブジェクト(内容:2007/11/1)
といったオブジェクトを作るように。
これがページ内の「2007/10/20」などといった内容のdateオブジェクトに適合。
区切り文字のみで分ける † 
検索式で「10/17から」など、余計な文字が付いているときは分けない。
単一の文字列として扱う。
検索式は区切り文字でのみ分ける。
流れ † 
ページ生成時
検索時
- 検索式→オブジェクト
検索式(文字列)→オブジェクト(検索/クエリー系クラス) - スコア集計・検索結果生成
検索/フォーマットの機能で検索結果に含めるデータと、検索/ソートに渡すデータ生成。
ページ単位で結果を出すなら、ページごとにスコアを集計、ページごとにデータ生成。 - ソート
検索/ソートの機能で検索結果に含めるデータを並び替え。 - 検索結果生成
HTML化。これはページ/責務。正確にはページの下位にある検索用WikiFormatの責務。
※スコア加算、集計、ソートが分かれているのは繰り返しの単位や範囲が違うから。
→プロトタイピング[?]