nDiki : 検索エンジン

検索エンジン / サーチエンジン (search engine)

関連情報

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日全て ]

2013年3月24日 (日)

今日のさえずり: 商品 CM で先に名前を知るプリキュア

2013年03月24日

  • 08:27 “迷惑な郵便物等(DM、架空請求、いたずら等)を届けてほしくないのですが、どうすればよいでしょうか? - 日本郵便” http://t.co/CVzqr8oRPn
  • 08:29 あれ、アイちゃんていうんだ(商品 CM で先に名前を知るプリキュア界)。
  • 08:36 唐突に生まれた。
  • 09:30 中学生時代からの友人から花見のお誘い。今日は残念ながら来客の先約があって残念ですが、ぜひ今度遊びに行きます。
  • 11:09 う、円が高いうちにと1月6日に Flickr Pro 2年延長したつもりだったんだけれどクレジット決済こないなあと思って確認したら、subscription したことになっているだけだったの……。あれぇ以前はその手続き時点で2年分購入できなかったっけ。
  • 13:12 はやぶさが載っていないのが惜しい。 / “Google以前の検索エンジン | ぷらすぶろぐ” http://t.co/0pEWvhDPQd
  • 17:40 そういえば近谷研OB会しばらくやってないですね(あるいは呼ばれていない)。
  • 18:51 年賀状チェックした。くじ全滅だった。全滅だった。
  • 23:12 1ペインタイプ。 / “UV Outliner — Simple and powerful single-pane outliner for Windowshttp://t.co/rZqgVyf83Q
  • 23:25 腹減ったー。もう歯磨いたしー。
[ 3月24日全て ]

2013年5月15日 (水)

foursquare検索使えないので Google検索する

foursquare検索日本語の処理が変なのか、それとも何かの条件でフィルタしているのかわからないけれど、ベニューが検索にひっかからないことが多い。

なので site:foursquare.com で Google 検索して探すようにしているんだけれど、結構頻繁にやるので Google Chrome検索エンジンに追加しておいた。

  • 検索エンジン名: foursquare(Google)
  • キーワード: 4sq
  • URL: {google:baseURL}search?q=site%3Afoursquare.com+%s&{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}{google:instantExtendedEnabledParameter}ie={inputEncoding}

これでアドレスバーに「4sq 吉野家 渋谷区」とか入力して検索すれば OK。

[ 5月15日全て ]

2014年9月3日 (水)

nDiki で記事のないキーワードページで 404 Not Found をきちんと返すようにした

nDiki のキーワードページ、(不要になって記事を消しても)そのページの URL では 200 で記事無しページを返していたのだけれど、きちんと 404 Not Found を返すようにした。 これで検索エンジンからみても行儀良い感じになるはず。

消しても 200 を返す処理になっているのが気になって、メモ的にキーワードページを作るの(後で消した時どうなるかを考えて)ためらいがちだったんだけれど、これで気楽になった。

[ 9月3日全て ]

2014年12月11日 (木)

今日のさえずり: 検索エンジンに「チームのURL/messages/%s/」を追加して「slack チャネル名」で開けるようにした

[ 12月11日全て ]

2014年12月18日 (木)

Slack に Chrome のアドレスバーから投稿

ぼっち Slack チームをタイムライン型ノートにするの、やってみたら便利で重宝している。

普段から Google ChromeSlack のページを開いておけば PC で作業中にサクっとメモできる。ただ、人に見られるのはちょっとな雑記が並んだ Slack チャネルページを開きっぱなしにしておきたくない時は気を使わなければならないのが嫌。

ということで Slack チャネルページを開かないで投稿できるようにしてみることにした。

Google Chrome はいつも開いているのでアドレスバー(オムニボックス)からさくっと投稿できるようにするのがいいかな。Google Chrome の拡張とか書いたことが無いのでとりあえずパラメータで送られてきたテキストを webhook で Slack に投稿するだけのスクリプトを Web サイトに置いてそれを呼ぶだけにしよう。

サーバ側はとりあえずレガシーだけれど CGI.pm で。Google Chrome 側は「検索エンジンの管理」で「キーワード」を「note」に、URL に「http://www.example.com/note?text=%s」みたいな感じ設定。

これでアドレスバーで

 note メモしたいテキスト

と入力すれば Slack の #notebook チャネルに投稿される。

https://www.naney.org/nDiki/2014/12/18/Google-Chrome.png

 use warnings;
 use strict;
 use utf8;

 use Encode;
 use CGI;
 use LWP::UserAgent;
 use JSON;

 my $slack_channel = '#notebook';
 my $username      = 'myname';
 my $webhook       = 'https://hooks.slack.com/...';

 my $query = CGI->new;
 my $text  = $query->param('text');

 LWP::UserAgent->new->post(
   $webhook,
   {
     payload => JSON::encode_json(
       {
         channel  => $slack_channel,
         username => $username,
         text     => decode_utf8($text)
       }
     )
   }
 ) if defined $text && $text ne '';

 print $query->redirect('https://www.google.co.jp/');
[ 12月18日全て ]

2017年2月5日 (日)

好きなことを好きな分量だけ書けるということ

立場だったり他人の評価だったり検索エンジンだったり広告だったり、その他いろいろなことを意識しないで好きなことを好きな分量だけ、少しだけとか沢山とか書いて置ける場所があるっていいことだと思います。

[ 2月5日全て ]

2022年2月13日 (日)

2022年02月13日(日)の #nNote

Google Chrome のアドレスバーから Obsidian を開いて検索する

Google Chrome検索エンジンの管理で、以下の URL検索エンジンとして追加する(X は Obsidian vault 名に)。

 javascript:location='obsidian://search?vault=X&query='+encodeURI('%s').replace(/\+/g, '%20')
[ 2月13日全て ]

2022年3月23日 (水)

Logseq のジャーナルページ機能が心地よい

Logseq + GitHub Pages で昨日作成した組織内公開ワーキングノートサイト向け Logseq graph で実際にいろいろ書き始めてみた。

ジャーナルページに思い浮かんだことをスレッド的にダンプする

ジャーナル機能を使うかどうか迷ったけど使ってみている。 inbox として取りあえずさっと書けるのに加えて、関連して思い浮かんだことを子リストとしてスレッド的に書き足していけるのが心地よい。inbox として理想的だ。Tweet せずにここにダンプしておけば十分ではと思えてきた。

MkDocs + GitHub Page のページを移す

Markdown ファイルを順次移しながらチェック。

logseq-mermaid-plugin を使えば Logseq でも mermaid の図を入れられるが mermaid.ink という外部サイトでレンダリングさせる方式なのでそのまま使えない。fenced code block ではなく独自記法で囲む必要があるのもマイナスポイント。

セル内改行している表が Logseq ではうまく表示されなかったのでこれも移すのをいったん保留した。

Obsidian vault の中に Logseq graph を置くのをやめる

Logseq のスタイルで頻繁に graph を更新していくには Obsidian vault の中に置いておかない方がやはり良いな。組織内公開ワーキングノートサイト向け graph は外に出した。

ただそうすると Logseq のジャーナルと Obsidianデイリーノートで2重管理が発生する。Logseq の backlink を活用するためには Logseq に書いておきたいし、後で参照するためのアーカイブとして Obsidian にも書いておきたい。 Logseq から Obsidian に転記したら 📋 でマークしてみたけれど、うまくいかない気がする。

Logseq でエクスポートした静的サイトは Google 検索エンジンにほとんどインデックスされない

公開ノートサイトにも Logseq を使ってみるのどうかと思ったけれど、 index.html にページデータを書き出した SPA になるのでページ数が増えた時に読み込みが遅くならないかなど懸念を感じた。 https://logseq.github.io/ はトップページしか Google 検索でヒットしていなさそうだし SEO も不利そうだ。公開サイトで使うメリットは少ないな。

[ 3月23日全て ]

About

Process Time: 0.024047s / load averages: 0.09, 0.23, 0.30