トップ(最新) | <前

nDiki : 検索エンジン

検索エンジン / サーチエンジン - search engine

関連情報

スポンサード リンク

Related term

2005年6月18日 (土)

[ DiKicker ] キーワードのハイライト表示 このエントリーを含むはてなブックマーク

スポンサード リンク

指定したキーワードに関する記事を表示する際、日記記事内のそのキーワードをハイライト表示するようにしてみた。 どのような文脈でそのキーワードが使われているか、さっと探せてすこしは便利かな?

配色によっては記事の中で目立ちすぎて読みにくくなりそうだからそこら辺は検討の余地あり。

Referer見て検索エンジンから飛んできた場合は、そのキーワードをハイライト表示するようにも以前からしたいと思っているんだけれど、こちらはまだ未実装

◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox


[ 6月18日全て ]

2005年12月14日 (水)

ほぼ日手帳 2006」でトラックワードα版プチコンテスト1位 このエントリーを含むはてなブックマーク

track feed や feed meter などをサービスしているサイドフィード株式会社から、先週「プログ SEO 専用キーワード分析ツール トラックワード」のアルファテスター募集のメールが届いたので試しに nDiki で利用しておいてみた。

JavaScript コードを貼りつけておくと、そのページが各検索エンジンでどんなキーワードで検索されて閲覧されたかを集計してくれるというもの。 track word サイトの方では検索キーワードごとに、ランキングが表示される。 トップページには「ブロガーが強い 検索キーワード」として、ホットなキーワードがリストアップされる。

α版プチコンテストとして、「ブロガーが強い 検索キーワード」の各ワードでランキング1位を選ぶというもの。 「ほぼ日手帳 2006」というキーワードで nDiki のページトップになったらしい。

まだ利用者が少ないため上位になれただけだと思うがちょっと嬉しい。

@ 関連ページ


[ 12月14日全て ]

2006年5月15日 (月)

すべての情報を共有する。情報閲覧者が判断する。 このエントリーを含むはてなブックマーク

帰りの東北新幹線で、ウェブ進化論の続きを読む。 興味を持ったのはこれ。

シルバースタインは「こうした情報共有の仕組みをテクノロジーが支える」と語ったが、グーグルの社内情報システムはごく普通のシステムの組み合わせだ。ごく普通のブログや掲示板、社員全員が同じ文章を自由に編集できるウィキ (Wiki) と呼ばれる共同作業用環境、検索エンジンといったものの組み合わせである。-- ウェブ進化論 p.86

社内に Wiki を立てて、周囲を巻き込みつつ情報共有のため基盤と文化を育てようとしている自分にとって「ごく普通のシステムの組み合わせだ。」というのは心強い話である。

本書ではさらに、下記のように続く。

道具自身に新性があるのではなく、すべての情報を共有することを原則に「情報自身の淘汰に委ねるという思想のほうに新性があるのだ。 -- ウェブ進化論 p.86

はてなの近藤氏も2005年7月27日の記事で同様のことを述べている。

ここで大事なのは、「その情報を出すべきかどうか」を情報発信者が判断するのではなく、全ての情報を出しておいて、情報閲覧者が「その情報を読むべきかどうか」を判断すればよい、と考えることです。-- CNET Japan Blog - 近藤淳也の新ネットコミュニティ論:情報の私物化を禁止する

効果的にコラボレーションをして成果を上げていくにはメンバが、積極的に情報をアウトプットし共有していくことが重要である。

しかしながら情報のアウトプットというのはなかなか実行されないものである。 理由はなんだろう。

  1. 情報共有/活用基盤がない。
  2. 情報を共有するという文化がない。
  3. 情報をアウトプットするコストが高い / 高いと感じる。
  4. 情報をアウトプットするメリットを理解できない / 感じられない。
  5. 情報を制限することで権限を維持したいから。

あたりか。

Wiki の次の一手として社内 Blog を立ち上げることにしよう。


[ アウトプット主義 ] [ 書評 ] [ 読書ノート ]


[ 5月15日全て ]

2006年5月25日 (木)

小学6年生みんなで音楽感性検索 このエントリーを含むはてなブックマーク

研究開発している検索エンジンの適用として、小学校の音楽科授業で活用していただく機会をいただいている。 今日はその授業日なので、小学校のある京都へ向かった。 品川を出るとすぐ新幹線の車窓から富士山が見える。 ちょっぴり幸せな気分。

今回は

修学旅行の思い出を PowerPoint を使って発表するにあたり、そのスライドに合わせた BGM を見つけよう」

というのがテーマ。

しかし最近の小学生はすごいな。 PowerPointアニメーションしたり、写真がくるくる回りながら表示されたりといった派手派手なスライドを書いているよ。 この小学校の生徒は課外活動で PDA を持ち歩いてるし。

今回の授業後には「ふりかえり」として PC で感想や意見を提出していたりと、そこらのエンジニアは顔負けである。


[ 5月25日全て ]

2006年5月31日 (水)

Debian GNU/LinuxHyper Estraier 1.2.7 を野良インストールする このエントリーを含むはてなブックマーク

DiKicker を使って社内 Blog を始めてから早いものでもう半月ほど経ち、記事もそれなりにたまってきた。

DiKicker にはキーワードによる串刺し表示機能があるものの、検索機能は自前で持っていないため任意の文字列で検索をすることができない。 これだと過去記事が活用されなくなってしまう。

ということでそろそろ検索エンジンをセットアップすることにした。

同じサーバで Namazuインストールして過去メール検索に使用しているが、今回は Hyper Estraier を使ってみることにした。

  • Web クローラが付属されていること
  • P2P連携機能があること

が選択理由。 今回は自分の社内 Blog だけでなく、自分の立てている Wiki (WiKicker) や他人が立てている PukiWiki、静的な HTML ページなどもまとめて検索できるようにしたいという考えがある。 このため複数のサーバに分散したコンテンツを、クローラでインデックス生成できるというのは魅力的である。

P2P連携機能の方は技術的に面白そうということで。

@ Debian GNU/Linux でのテスト

まずは自分のノート PC 上にセットアップして、いろいろ試してみることにする。 さっそく apt-get で Hyper Estraier をパッケージインストール

estmaster でノードマスタを起動し、ユーザ設定とノード作成を行う。

で次に Web クローラ estwaver の設定をして、ノート PC ローカルの Web サーバのコンテンツをインデックス化してみる。

で、検索

あれ?

検索結果件数が 0。よくみるとインデックスされている文書が 0 だ。 確かに estwaver がモリモリ fetch して登録しているようなのだが……。

しこたま悩んだ末、Debian パッケージHyper Estraier は 1.2.5 でこのバージョンの estmaster は ノードサーバへの登録機能がまだないということにようやく気がついた。

とほほ。

@ ソースからインストール

ということなので、Hyper Estraier 1.2.7 をソースからインストールすることにした。 Debian パッケージの QDBM だと古いので、こちらもあわせてインストール

今回はパッケージ化せずに /usr/local/hyperestraier-1.2.7 に、とりまとめてインストールすることにしておく。

@ QDBM
 wget http://qdbm.sourceforge.net/qdbm-1.8.58.tar.gz
 tar zxvf qdbm-1.8.58.tar.gz
 cd qdbm-1.8.58
 ./configure --enable-zlib --prefix=/usr/local/hyperestraier-1.2.7
 make
 make check
 make install
@ Hyper Estraier
 wget http://hyperestraier.sourceforge.net/hyperestraier-1.2.7.tar.gz
 tar zxvf hyperestraier-1.2.7.tar.gz
 cd hyperestraier-1.2.7
 PKG_CONFIG_PATH=/usr/local/hyperestraier-1.2.7/lib/pkgconfig ./configure --prefix=/usr/local/hyperestraier-1.2.7
 make
 make check
 make install

インストール完了。

最初インストールしたものを実行すると落ちて何だろうと思っていた。 これについては deb パッケージでインストールした関連パッケージを purge してビルドし直しインストールしたら問題なく動くようになった。

メデタシメデタシ。

明日は会社のサーバでも設定しよう。


[ 5月31日全て ]

2007年1月13日 (土)

[ WiKicker ] spam検索エンジン対応に noindex、nofollow を追加 このエントリーを含むはてなブックマーク

@ <a rel="nofollow">

相変わらず www.naney.org 上の WikiForum (NaneyOrgWiki) にも毎日のようにリンク spam 書き込みがある。

気がつき次第削除と、その URL や関連キーワードの書き込み禁止文字列ブラックリストへの登録を行っているが、手間でしょうがない。

これらのリンク先に貢献するのは腹立たしいのでリンク (A 要素)へ

 rel="follow"

属性をデフォルトで設定するように WiKicker を書き換えた。 ようやく。

@ <meta name="robots" content="noindex,nofollow">

あわせて、検索エンジン対応もしていおくことにした。

編集ページや履歴ページは検索エンジンに登録してもしょうがないので、インデックスから除外されるように HTML の HEAD に

 <meta name="robots" content="noindex,nofollow">

を追加するように修正。

クエリ付きの URL のページで noindex した場合、クエリ無しや他のクエリを持つ URL のページまで一緒にインデックスから外されてしまわないかちょっと心配で、今まで保留にしていたのだけれど、Wikipedia などを見ても大丈夫のようだ。


[ SEO ]


[ 1月13日全て ]

2007年1月21日 (日)

Wiki ではロボット除けをしてはいけない このエントリーを含むはてなブックマーク

昨日土曜日から nDiki を含め www.naney.org のアクセス数が激減している。 Google Analytics でみてみると先週の半分以下。 細かくみてみると Google 経由のアクセスが 3分の1になっている。

Google検索してみると今まで上位であった検索結果がことごとくランク外に。 先週土曜日に行った検索エンジン対応のための一部ページへの robots メタタグの追加とそれらのページへのリンクへの nofollow の追加が裏目に出たらしい。

Wiki の過去のリビジョンのページや編集ページなどが予想以上にサイト全体の PageRank を下支えしていたようだ。

あわててこれらの設定を外す。

元に戻るにはまたそれなりにかかるだろう。 ショック。


[ SEO ]


[ 1月21日全て ]

2007年2月2日 (金)

DiKickergrep 検索機能を追加 このエントリーを含むはてなブックマーク

DiKicker には自動リンクベースの記事串刺し表示機能があって、同じキーワードを含む記事をまとめて読むことができる。 結構便利なのだが、この機能ではキーワードの設定は Blog の書き手に委ねられている。

社内で DiKicker を一部使ってもらっているのだけれども、それら他人の Blog を読んでいると「あのキーワードで串刺し表示したいな」と思うことがしばしばあることに気がついた。 やはり任意の文字列で串刺し表示する機能が欲しい。

書き手にとっても「自動リンクキーワードにするような文字列ではないけれども、串刺しで読みたい/探したい/見せたい」と思うことが少なからずある。

ということで、検索ベースの串刺し表示機能を実装してみた。

@ grep ベース

実現には全文検索を行う必要があるが「設置・運用の手間」「ディスク容量」という点から、事前にインデックスを生成するような方法は今回は避けようと思う (www.naney.org 上で自分が使う上での制約からくる理由が一番大きかったりする)。

ということで今回は grep 型で実装することにした。 もともと WiKicker の方の検索機能も現在のところ grep 型である。 WiKicker では自前で WikiPage をスキャンしているが、DiKicker では grep コマンドに任せることにした。 こういうのは専用の grep を使った方が速いはず。呼び出しは

 grep -Flre $escaped_string dir...

というオプション指定。Web ページとしてのページングなどは、自動リンクによる串刺し表示機能のものを流用。

で試したところ www.naney.org サーバでは、load averages が 1 以下の時でだいたい50秒前後。対象ファイル数は 2800弱。予想より時間がかかる。

ただし1回実行した後、ファイルがファイルシステム/OSメモリ上にのっている状態では 0.1秒程度で完了する。

検索結果ページの permalink が検索エンジンにそれなりに捕捉されて、定期的にアクセスがあるようになれば、ファイルがメモリにのっている割合が増えるであろうから平均して実用に耐えられる速度が出るかもしれない。

今後は様子をみながら検索結果のキャッシュ等を処理を整備していく予定。


[ 2月2日全て ]

2007年5月30日 (水)

WiKicker 0.420 リリース - 変更いろいろ このエントリーを含むはてなブックマーク

去年の12月3日以来、約半年ぶりのリリース。 リリースしそびれて、随分変更を累積してしまった。 以下主な変更点。

@ バージョン番号形式を変更

前回の 0.41 に対して、今回は 0.420 とした。 浮動小数点数的には、増分 0.01 で今まで通り。

今後 version.pm が普及した時のことと、developer release を出す時のことを考えて小数点以下3桁ずつのスタイルに移行することにした (関連記事)。

@ <meta name="robots" content="noindex,nofollow">

2007年1月に実装。 編集ページや履歴ページが検索エンジンに登録されないようにするための機能。

@ <a rel="nofollow">

2007年1月に実装。 リンク spam 対応。

@ AutomaticLink 長を可変にした

2007年3月に実装。 特に DiKicker で1文字キーワードによる自動リンクを有効にするために追加した。

@ '/' の前を省略した自動リンクを有効にするか無効にするかを設定できるように

前述の機能で1文字での自動リンクを有効にしたら、不便な面が出た。

WiKicker / DiKicker では '/' を階層の区切り文字としても扱うことができるようになっていて、サフィックス部分だけでも自動リンクするようになっている。 自動リンクを1文字にしたら「OS/2」というキーワードに対して '2' でも自動リンクが働き、望まないリンクが張られるようになってしまった。 DiKicker では階層的キーワードは無くてもあまり困らないので、'/' の前を省略した自動リンクを無効にできるようにした。

@ JSON 形式データ出力

2007年4月に実装

@ (DiKicker) はてなブックマーク数表示機能を追加

2007年1月に実装

@ (DiKicker) はてなブックマークエントリーページへのボタン表示機能を追加

2007年1月に実装

@ (DiKicker) grep 検索機能を追加

2007年2月に実装。自分としては重宝している。

@ (DiKicker) キーワード記事の下部への文字列挿入機能

Google AdSense 挿入用。

@ (DiKicker) サーバの負荷が高くなったら 503 を返して沈静化を待つようにした

2007年4月に実装 load average をチェックして負荷が高い時は、503 を返すようにした。

@ 内部コードの結構な書き換え

ソースコードを結構いじった。 deprecated なメソッドの削除も実施したので、0.41 以前から派生しているソフトウェアは多くの場合修正が必要。


[ 5月30日全て ]

2007年12月18日 (火)

Google Analytics のデータからよく検索されるキーワードを表示するようにした このエントリーを含むはてなブックマーク

Google Analytics から1日1回キーワードのレポートを TSV 形式でメールで配信するように設定している。 このデータをもとに「よく検索されるキーワード」を抽出して、nDiki の下の方に表示するようにした。

@ 処理の流れ

  1. メールで配信された TSV 形式データをファイルに保存する。
  2. 検索質問とセッション数の組のデータを抽出する。
  3. 1ワード単位でセッション数を集計する。
  4. 上位のワードについて、nDiki のキーワードリストにあるか照合する。
    1. 完全一致するものがあれば、それを参照キーワードとする。
    2. 大文字小文字一致するものがあれば、それを参照キーワードとする。
    3. ワードを含むキーワードがあれば、その中で文字数の差が少ないものを参照キーワードとする。
    4. ワードで記事を grep 検索してマッチするものがあれば、それを(nDiki 内で検索して見つかる)キーワードとする。
    5. でなければ関連キーワード無しのワードとする。
  5. 各ワードについて、対応するリンクを設定してフッタ埋め込み用の HTML フラグメントを生成しファイルを生成する。
  6. ファイルをサーバにアップロードし、サーバ側でフッタにインクルードする。

1日1回の作業なので、メールからスクリプトにかける部分とアップロードする部分は手動で。

そこそこの処理なので、そこそこの精度なのだけれど傾向は何となくわかる感じだ。

実際にはアクセスログの対象となっているのは nDiki 以外の www.naney.org 内のアクセスも含まれているけれどもまあいいであろう。

@ キーワードの処理

キーワードの処理は細かいことをいうと結構面倒だったりする。

  • 複合語の処理: 検索ワード側も、nDiki キーワード側も複合語を含むので空白で区切られた語の扱いが大変。特に検索ワード側は語順が正しいとは限らないし、各語が個別の語を表しているのか否かの判断が難しい。
  • 曖昧一致処理: 検索ワード(や nDiki キーワード)が正確な語とは限らないので、曖昧一致させる必要がある。検索エンジン側で曖昧一致させて検索結果に上がっている可能性があるのでその辺りも考慮する必要がある。

などなど。

この辺りは精度を上げようとするといろいろ工夫の余地がって楽しそうではあるな。


[ 12月18日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.318655s / load averages: 1.17, 1.46, 1.41
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker
Base theme by Nana (for tDiary)