- バックアップ一覧
- ソース を表示
- :i/検索 は削除されています。
- 1 (2007-12-30 (日) 02:57:50)
- 2 (2008-01-01 (火) 03:02:35)
- 3 (2008-01-23 (水) 10:21:28)
- 4 (2008-01-23 (水) 11:05:52)
- 5 (2008-02-11 (月) 15:29:55)
- 6 (2008-09-25 (木) 23:41:17)
- 7 (2008-09-28 (日) 00:01:07)
- 8 (2008-09-28 (日) 00:09:18)
- 9 (2008-09-28 (日) 00:43:26)
- 10 (2008-09-28 (日) 00:48:22)
- 11 (2008-09-28 (日) 00:56:49)
- 12 (2008-09-28 (日) 01:02:34)
- 13 (2008-09-28 (日) 01:28:34)
- 14 (2008-11-08 (土) 13:16:52)
- 15 (2008-11-08 (土) 21:49:02)
- 16 (2008-11-09 (日) 07:50:50)
- 17 (2008-11-09 (日) 08:18:53)
- 18 (2008-11-23 (日) 21:57:46)
- 19 (2008-11-23 (日) 22:41:26)
- 20 (2009-08-01 (土) 19:01:54)
- 21 (2009-08-01 (土) 19:53:06)
- 22 (2009-08-01 (土) 20:08:49)
- 23 (2009-08-30 (日) 11:16:48)
- 24 (2009-09-23 (水) 15:20:03)
- 25 (2009-11-03 (火) 10:32:04)
- 26 (2009-11-03 (火) 19:52:03)
- 27 (2009-11-03 (火) 20:05:53)
- 28 (2009-11-03 (火) 20:18:45)
- 29 (2009-11-03 (火) 20:50:21)
- 30 (2009-11-03 (火) 20:56:27)
- 31 (2009-11-04 (水) 00:21:42)
- 32 (2009-11-07 (土) 01:17:01)
- 33 (2010-02-19 (金) 01:17:34)
- 34 (2010-02-19 (金) 01:50:41)
- 35 (2010-11-04 (木) 07:11:37)
- 36 (2010-11-21 (日) 10:53:26)
- 37 (2011-01-11 (火) 10:37:07)
- 38 (2011-01-11 (火) 14:32:44)
- 39 (2011-01-16 (日) 03:39:40)
- 40 (2011-01-16 (日) 03:44:10)
- 41 (2011-01-16 (日) 11:32:56)
- 42 (2011-01-17 (月) 17:19:00)
- 43 (2011-01-19 (水) 20:49:45)
- 44 (2011-01-19 (水) 20:57:43)
- 45 (2011-01-21 (金) 10:25:13)
- 46 (2011-01-27 (木) 10:57:08)
- 47 (2011-02-09 (水) 18:11:03)
- 48 (2011-02-10 (木) 04:57:12)
- 49 (2011-02-10 (木) 05:22:39)
- 50 (2011-02-10 (木) 05:29:10)
- 51 (2011-02-10 (木) 05:40:39)
- 52 (2011-02-10 (木) 05:47:25)
- 53 (2011-02-25 (金) 13:44:00)
- 54 (2011-02-25 (金) 13:47:39)
- 55 (2011-02-25 (金) 20:30:23)
- 56 (2011-02-25 (金) 20:38:09)
- 57 (2011-02-25 (金) 20:45:12)
- 58 (2011-03-08 (火) 13:18:37)
- 59 (2011-03-22 (火) 15:20:52)
- 60 (2011-03-22 (火) 18:03:59)
- 61 (2011-04-13 (水) 22:06:00)
- 62 (2011-07-19 (火) 00:11:37)
- 63 (2011-07-19 (火) 00:19:46)
- 64 (2011-07-19 (火) 15:44:23)
- 65 (2011-07-19 (火) 15:47:00)
- 66 (2011-07-19 (火) 17:48:17)
- 67 (2011-07-19 (火) 17:56:42)
- 68 (2011-07-19 (火) 18:03:39)
- 69 (2011-07-19 (火) 18:10:35)
- 70 (2011-07-19 (火) 18:31:33)
- 71 (2011-07-19 (火) 18:38:37)
- 72 (2011-07-19 (火) 18:45:42)
- 73 (2011-07-19 (火) 18:47:21)
- 74 (2011-07-19 (火) 19:43:53)
- 75 (2011-09-01 (木) 23:54:52)
- 76 (2011-12-14 (水) 01:29:17)
- 77 (2012-04-24 (火) 13:53:40)
- 78 (2012-05-20 (日) 00:59:18)
- 79 (2012-08-06 (月) 04:59:41)
- 80 (2012-08-07 (火) 16:58:52)
- 81 (2012-09-20 (木) 06:52:07)
- 82 (2012-09-20 (木) 07:38:33)
- 83 (2012-10-18 (木) 17:48:26)
- 84 (2012-10-22 (月) 10:05:35)
- 85 (2012-11-22 (木) 12:08:44)
- 86 (2013-01-16 (水) 00:59:55)
- 87 (2013-02-06 (水) 01:50:55)
- 88 (2013-02-07 (木) 17:14:44)
- 89 (2013-02-07 (木) 21:01:32)
- 90 (2013-02-07 (木) 23:25:29)
- 91 (2013-02-07 (木) 23:50:58)
- 92 (2013-02-08 (金) 08:32:50)
- 93 (2013-02-08 (金) 08:45:13)
- 94 (2013-02-08 (金) 11:18:52)
- 95 (2013-02-08 (金) 12:02:02)
- 96 (2013-02-08 (金) 12:54:03)
- 97 (2013-02-08 (金) 13:58:59)
- 98 (2013-02-08 (金) 20:31:37)
- 99 (2013-02-08 (金) 20:45:29)
- 100 (2013-02-10 (日) 01:45:27)
- 101 (2013-02-19 (火) 09:13:21)
- 102 (2013-02-19 (火) 09:28:07)
- 103 (2013-02-19 (火) 09:36:21)
- 104 (2013-02-19 (火) 09:42:08)
- 105 (2013-02-19 (火) 09:43:37)
- 106 (2013-02-19 (火) 22:10:43)
- 107 (2013-02-19 (火) 23:39:48)
- 108 (2013-02-19 (火) 23:47:06)
- 109 (2013-02-19 (火) 23:53:01)
- 110 (2013-02-19 (火) 23:59:54)
- 111 (2013-02-20 (水) 00:04:18)
- 112 (2013-02-20 (水) 00:11:49)
- 113 (2013-02-20 (水) 00:18:53)
- 114 (2013-02-20 (水) 22:07:24)
- 115 (2013-02-21 (木) 20:41:23)
- 116 (2013-02-21 (木) 21:32:51)
- 117 (2013-02-21 (木) 21:44:28)
- 118 (2013-02-21 (木) 22:32:59)
- 119 (2013-02-21 (木) 22:46:36)
- 120 (2013-02-21 (木) 22:47:21)
- 121 (2013-02-21 (木) 23:04:10)
- 122 (2013-02-22 (金) 00:54:19)
- 123 (2013-02-22 (金) 01:04:28)
- 124 (2013-02-22 (金) 01:26:48)
- 125 (2013-02-22 (金) 01:43:03)
- 126 (2013-02-22 (金) 01:46:57)
- 127 (2013-02-22 (金) 01:53:44)
- 128 (2013-03-20 (水) 22:39:12)
目次 † 
- 目次
- 関連
- 検索周辺のタグ
- 検索
- 思い付き
- 実装
- NarrowSearch, ExpandSearch
- フォーム生成プラグイン呼び出しから開始
- 検索対象
- 検索結果にページ作成リンクを
- AND、ORを使わない
- OR検索と同時にAND検索
- インデックスを作るなら別プロセスで
- たくさん合えばスコア増
- 検索履歴
- 検索はフレームワークの機能
- 関連語検索
- OR結合の結果は切る
- 検索キーワードをリンク化
- 検索をリンクの仕組みで実装
- 検索ページ
- 検索は集約
- 検索結果をRSS化
- 1ページ、1ソート順
- フィルタリング、変換
- 日記を特定のキーワードで検索して「その1日前に何をしていたか」を一覧したい
- 検索結果に要約と「編集」リンクを
- 出力はHTML
- 2次元検索
- ページを探す、文字列を探す
- 設計
関連 † 
検索周辺のタグ † 
Array
検索 † 
- 一般的に検索はフィルタリングとソート。ここで考えるのはこれらを一段汎用化したもので、検索/スコアリングと検索/フォーマット。
- 検索はページに書かれた情報を活用する機能。
ページには単純な構造で十分な情報を。その情報をつなぎ合わせるのが検索。 - 自動生成されるページは検索機能によって作られる。
動的に生成されるページは検索機能を使ったもの。
思い付き † 
- カタカナ語の「ー」を除いたものも検索。
- ユーザーが定義した略語、用語も検索。
- 検索結果を利用してアクセス解析。
ページ構成を考えるときの参考に。 - ページをページ名で指定、さらにその中を検索、最初の候補にジャンプするような検索もしたい。
アンカー付きリンクよりも柔軟なリンクとして。ページ名の一覧表示ではいけない。
クリックすると内容が表示される検索。内容が表示される検索ではページを特定(ページ1つだけを表示)したほうが読みやすい。
使い方 † 
閲覧と作成と検索の操作を統合。
- 入力欄に(見たい|書きたい)ページ名入力。Enter。
- ページがあれば表示。(見ることができる)
- ページがなければ「もしかして・・・」というリンクと、新規作成リンク(または新規作成フォーム)を表示。(検索と作成が両方できるし、検索は作成の参考資料にもなる)
新規作成フォームでは1行目がページ名。
検索欄のデフォルト値 † 
検索欄を設置できるならデフォルト値も設定可能に。
「ヘルプ 」とか。ヘルプページ内に。汎用の検索欄とは別に。
「まとめておきました」 † 
検索機能でWikiページをまとめると、その検索/クエリーは新しいページの名前のようなものになる。
このページを誰かの利用者ページや他サイト(ブログ、他のWiki)から参照できるようにすれば個人的な(読むだけ)Wikiを作ることができる。
- 「このWikiの再編後に残すページをまとめておいたので、意見があれば自分の利用者ページに「再編について」という見出しで書き込みしてください」
検索で「再編について」という見出しを集めた検索リンクも設置。 - アイテムの価格相場を表から抜き出し、荒れた時期を探す。
同時に更新したページが分かるように † 
同じページ名が重複していても全て表示。
更新の衝突も分かるように。
スコア加算条件を複数に † 
「ホットな記事、クールな記事」の「ホット」は検索スコアに加味する要素のこと。
だから他の評価方法(これも加味する要素のこと)と併用できるように。
似ているページ報告 † 
利用者がページ間のつながりを変える。
→これはページ内のリンクにタグを付けることで行う。
「関連項目」とでも書いておけばいい。
リンクは「他のページからどう見られているか」を表す。
類似した情報を見つけることで利用者間のスケジュール調整とかアポイントメントに。
用語集を使って関連語検索 † 
検索時、用語集(というページ)にある用語が見つかれば同義語・関連語も検索。
または同義語・関連語を検索するためのリンクを併せて表示。
→検索/クエリーがリンクに適合した場合、リンクをリンクのまま表示。というだけ。
個人用の用語集も作れて、それを検索でも利用できれば理想的。
利用者の下位にページを作って。
これで、公式のページ名以外のキーワードでページを指定できる。
検索機能の活用法が多彩になれば思いがけない使い方ができそう。
実装 † 
NarrowSearch, ExpandSearch † 
フォーム生成プラグイン呼び出しから開始 † 
検索手順は検索フォームプラグイン呼び出しから始まる。→プラグイン/UI[?]
検索処理の本体はそのフォームから「送信」したとき。
- 検索フォームプラグイン入りページ閲覧。検索フォームプラグインは設定にある検索プラグイン名を含んだ検索フォームと置き換わる。
あるいは検索プラグイン呼び出しになるようなURIを含むリンクなどで。こちらは特に工夫なし。ただのリンク。 - 利用者が検索フォームに入力、URI化してHTTPリクエスト。
- WikiEngineから指定された検索プラグインが呼び出される。
- HTTPレスポンスには検索結果ページの雛形と、1件あたりの雛形を組み合わせて作られたページ。
検索プラグインが作る。2種類のうち、検索結果ページはWikiEngineが通常のページとして扱う。
1件あたりのほうは検索結果プラグイン(検索結果に置き換わるだけのプラグイン)が扱う。
検索時以外でも検索結果プラグインは機能する。検索結果プラグインの実体はページ一覧出力なので。検索時には検索に適合したページだけのページセットを対象にするだけ。
ということで検索時以外にこのプラグインが展開されると全てのページ一覧になる。プラグイン側で全て…の場合は空文字列かコメントを出力するようにすれば、どんなページに検索結果を埋め込んでも邪魔にならない。
雛形2種類を選択可能にすれば、検索結果を選ぶこともできる。
グラフ表示とか、リストとか、テーブルとか。
雛形はページとして用意。
検索の雛形ページを通常のページ、FrontPageにもできる。
検索結果と置き換わるプラグインが設置されていれば。
検索プラグインも複数選択可能にすれば、アルゴリズムを選べる。
パラメーター形式が異なればフォームを分ける必要があるけど。
検索対象 † 
それぞれの区分で検索/スコアリングのルールを適用。
- 場所
つまりページ名。指定されたページと近いページが高スコア。 - WikiNotation
意味を持ったテキスト。評価方法はWikiNotationの各クラスによって異なる。
WikiNotationを含むテキストの中の、WikiNotation以外の部分はWikiNotationの一つとして扱う。 - リンク
WikiNotationの一つ。でもちょっと特殊。2ページ間の関係を表す。同じ関係(関係名)なら適合。 - テキスト(WikiText)
WikiNotation変換前。入力したままのテキスト。
意味を持たないテキスト。WikiNotationもそうでないテキストもまとめて文字列として評価。文字列比較の適合文字数がスコアになる。 - 閲覧用プレーンテキスト
WikiNotationを変換した後の、見たままのページ。WikiNotationで分断されたテキストも一続き。
HTML変換後、タグなどを削除して作ったプレーンテキスト。
HTMLではない。HTMLは見えないものなので検索対象外。
各区分での評価は重複して良い。
WikiNotationで評価したあと、テキストとして評価、その後閲覧用テキストとしても評価。
検索結果にページ作成リンクを † 
検索結果に「…(検索ワード)というページを作る」というフォームを設置。(検索ワード)部分は入力済みテキストボックスで変更可能。
ページ作成前に追記先を検索することがよくあるので。追記先が無かったときのためのフォーム。
AND、ORを使わない † 
検索は検索クエリーをページ構造と同じ構造のオブジェクトに変換、類似度判定で実現。
そのため、ANDやORは使えない。代わりに必須かオプションかを検索キーワード毎に指定。
語1 語2 語3?
…で、語1と語2を含むページを指定、語3まで含むものを上位に表示。
語1 AND 語2 OR 語3
…などは表現できないので、代わりに
語1 語2
語3
…に分けることになる。
必須 | (何もつけない)か、語頭か語尾に「!」 |
オプション | 語頭か語尾に「?」 |
不要 | 語頭か語尾に「-」 |
OR検索と同時にAND検索 † 
複数キーワードを受けたとき、全てを含むページ、いずれかを含むページの順に高スコアを付ける。
手間を省き、情報の取りこぼしを防ぐ。
インデックスを作るなら別プロセスで † 
インデックスを作成・更新するなら別プロセスか、本体プロセスの余り時間に。
ページを更新するたびに必要、かつページの更新処理には不要なので。
インデックス再作成を要する操作→インデックス再作成完了までの間、更新されたページ(インデックスに入っていないドキュメント)はインデックスなしの全文検索の対象にする。
たくさん合えばスコア増 † 
/([0-9]+)(キロ)?/
…なら0〜2コのグループに合う。
→スコアを0〜2倍に。
こうして単位(キロ)を含めて合った場合に高スコアにできる。
検索履歴 † 
検索フォームで
利用者×ページ×検索ワード
を保存。
「自分が…というページを読んでいるとき検索したくなったこと」が…というページの検索フォームにリストアップされるように。
保存する領域は利用者。
利用者ページに記録する。
ということで、利用者自身が編集できる。(追加も削除も)
入力されたキーワードを関連付ける † 
主観検索のために。
検索キーワードのOR結合を同義、AND結合を上下関係のある言葉として検索時に使用。
検索処理内で使うか、検索結果に関連語として表示するか。
検索はフレームワークの機能 † 
WikiNotationから呼び出すように。
関連語検索 † 
検索→検索結果に出せるページに含まれるリンクを集計(リンク=ページ名)→多い順にリスト化。
出現頻度の高いページ名を検索語に追加して再検索すると関連語も検索できる。検索漏れ防止。
これをワンタッチで。
検索→検索結果表示、そのページから自動的に関連語を含む検索開始(「関連語検索中」表示)→関連語検索結果が画面上に追加される。
いつも関連語が必要とは限らないので、一度検索結果表示。表示後に関連語検索が始まるように。
どれくらい出現頻度があれば関連語に含めるか…。これは検索時に利用者が与える。しきい値を低くすると多くの関連語が含まれる。
関連語探し
あるリンクと同じページにあるリンクのリストを得る。
(共起しているリンクを複数得る)
検索を一時的ページとリンクで行えば、リンク←ページ名←検索語、となる。
つまり、検索語入力→関連語リストを得ることもできる。
OR結合の結果は切る † 
検索でOR結合がある場合、結果1件ごとにヒットした検索語を併記。
ORを含む場合、どの検索語にヒットしたかが分かりにくいので。
ORで切ったキーワード別に検索リンクを用意できるならそっちのほうがいい。
順序は全キーワードの結果を混ぜてソート。これを見るためにORを使うので。OR断片ごとにソートしたいなら検索リンクをクリック→そのOR断片だけで検索。
検索キーワードをリンク化 † 
再利用しやすくなる。
orで切って、andはつなげて。それぞれを検索リンクにする。
ブックマークバーにドロップできるように。
検索をリンクの仕組みで実装 † 
これは検索結果を共有・保存することになる。
個人利用ではデフォルトにしてもいい。
不特定多数利用ではバックリンクを公開しているブログと一緒。検索結果からページを選んだ時点で保存。
検索ページ † 
検索/クエリーを検索プラグイン呼び出しに書き入れると出力が(参照時の)検索結果になる。
例えばタグ[Wiki]のページを作ると、タグ[Wiki]を含むページの一覧になる。
検索は集約 † 
検索はページを集約する機能でもある。
検索/クエリーに適合したページを1つのページにまとめる。
検索結果を検索すれば集約をさらに集約することになる。
集約をさらに進めるために、
ページを一目見ただけでそのページを見る価値があるか判断できるようにするため、検索結果の冒頭にまとめを表示。
まとめ
- 集まったタグのタグクラウド
- ヒット数をorごとに
andはつなげたままで - これまでの検索クエリーをorで切ってリストアップ
ヒット数も添えて。[検索 ページ](18), [検索 結果 ページ](8)
検索結果をRSS化 † 
検索/フォーマットで実現。
他ページのリソースを取得するプラグインと、RSSを解析するプラグインでRSSをページ化。
他サイトのリソースを取得するプラグインはあっても良いがRSS取得のためなら要らない。
1ページ、1ソート順 † 
ソート順が違う結果を出力するなら別のページに。
そうしないとAPIなどから自動処理しづらい。
ソート順は検索/クエリーが決める。
フィルタリング、変換 † 
…を検索/クエリーの数だけ繰り返す。
フィルタリングルール、またはソートルールだけの検索/クエリーも可能。
UIでフィルタリング、変換のルールを指定したりしない。面倒になる。
プラグインを作ることで利用可能に。
→ソートは最後だけ(テンプレートに埋め込むときだけ)にする。その代わり、スコアを最後まで残す。
日記を特定のキーワードで検索して「その1日前に何をしていたか」を一覧したい † 
→検索結果1件ごとに「1日前」というリンクを辿って、その1件をリンク先と置き換える。
→検索結果からそれぞれの1日前のページ一覧を作れる。
…というのをフィルタリングルールで。
- フィルタリング1回目
全ページからキーワードを含むページのみを得て、それを結果へ。 - フィルタリング2
結果から「1日前」というリンクを得て、それを展開して、結果へ。
展開は リンク→リンク先のページ をするプラグインを使って。 - フィルタリング3
結果の見出しのみを得て、それを結果へ。
検索キーワードではAndAlso検索をするように指定。検索:AndAlso
検索結果に要約と「編集」リンクを † 
全ページの一覧 ページ1 章1 [[編集:ページ1/章1]] 該当部分(段落単位) -------- 章4 [[編集:ページ1/章4]] 該当部分(段落単位) ページ3 …
- 検索結果から編集を行うことは多い。「編集」リンクで直接編集したい。(章の実装をページにしておけば章単位の編集になって便利)
ページが存在しないなら「編集」は「ページ作成」と同じ機能になるので、この編集リンクだけでページ作成にもなるし。
→必ず「(検索キーワード)について書く」というリンクを検索結果に含める。
出力はHTML † 
2次元検索 † 
1つのページのバージョンを検索。
新→旧の順に優先して表示。
ある言葉がいつ(加えられた|消された)かが分かる。
日時を指定して、その時点での前ページを探すのもいい。
これも全バージョンの一覧というページ内を検索することで実現。
ページを探す、文字列を探す † 
→統一
これをページ内のテキストを探す方だけに統一できる。
「全ページの一覧ページ」を検索、このページには全ページが章として埋め込まれている。
で、章を含めて検索。
章を含めた検索は編集時のテキストを検索するのと同じ。章を展開して1つのWikiTextの形式にして処理。
章の展開を適切にすれば負荷を低減できる。
設計 † 
アルゴリズム † 
並べ替えをする
→複数の要素が必要
要素とは?
→Element
newとoutができるもの。
変換もする。
URL→ページ内容に。
その中の~月~日だけを(1つ)返す。
解釈 † 
数値なら近い数にも高スコアを。
#000000、#000なら各桁ごとに近い数かどうか判断。
#309と#209は最も近い数ということになる。
- 20061231と20070101も近い。
- 月と日も近く、水と火も近い。
それぞれに対応するWikiNotationが要る。
もし、特定のページでWikiNotationを定義できるようなプラグインができれば、それで間に合う。
特殊な数値もページで定義できる。
→マッピング。
1次元の値に写像すればいい。
x1〜x2→y5〜y6クエリー作成に時間がかかりそうなので、クエリー作成と検索を分けてもいい。
操作不要、自動で続けるようにして。クエリー作成でマッピング後の表現にして。
RIGHT::t/![?]
データ型はページ主体 † 
すべてのページを得る → その中を検索 → ページを得る → その中を検索 → ページを得る → その一覧を検索結果とする