すでに、/.でも話題になっているが(スラッシュドット ジャパン | gooが自然文検索に対応)、gooが自然文検索を正式サポートしている。以前に試験運用していたものの、本運用であろう(試験運用の際に取り上げたと思いきや、取り上げてなかったようだ。MSNの話はid:mfunaki:20041111で取り上げていたが)。
/.では、いじめどころとして 1. 否定・除外 2. ポインタ 3. 選択 なんてものがあげられていましたが、私の感想としては否定の実装自体はそれほど難しくないのだが、否定(マイナス)処理をする必然性があるのかどうかの判定が難しいかと思う。
例えば、「コーヒー以外の眠気が覚める飲み物」であれば、「(眠気 覚める 飲み物) - (コーヒー)」あたりでも出てきそうなものだが、実際にゴールとなるであろうページには、往々にしてコーヒーのことも言及されていたりするので、単に「眠気 覚める 飲み物」で検索した方が所望の結果が得られるだろう(「眠気が覚める飲み物としては、コーヒーや○○があります」のような記述のあるページ)。
それこそ、「プログラマの数学」的に言えば、(「または」ではなくて)否定の作用域が排他的かどうかとでも言えるでしょうか*1。
試験運用の際にいろいろ試した際の感想では、単純に名詞句の重み付けOR検索をしているわけでなく、インデキシングの際に各名詞句に「どんな疑問句(5W1H)で聞かれるのか」を付与しているので、「〜は誰」「〜は何」「〜はいつ」のような検索文には強いかと思います。
さて、(最近新聞で読んだ記事がきっかけで)私もいくつか例を考えていました。
似ていてもぜんぜん違うことを聞いているのですが、出てくる答えは、まぁ、似たり寄ったりです。正解とはちょっと言いづらいですな。
*1:「このダムでは、非常ボタンが押されるかまたは危険水位を超えた場合に、サイレンが鳴るシステムになっています」と「彼は現在、東京または大阪にいます」の2つのまたはのうち、かつに置き換えてもおかしくないのは?