namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Phrase search (Re: [Q] OpenText Style?)



chida@xxxxxxxxxxxxx (CHIDA Makoto) wrote:

>  なぜ、"一致行の表示"があると便利かなということを補足しますと、
>例えば、paperの検索などで、"yamakawa taro"さんを探したいとき 
>yamakawa & taro で検索すると"yamakawa ***" さんと "*** taro" さんを含ん
>だファイルが、全部のってきてしまうため、めざす"yamakawa taro"さんが、
>なかなかみつけられなかったりするためです。
>  この時、"一致行の表示"があると、とても便利かなと思った次第です。

えっと、これはそもそも "yamakawa taro" というフレーズで検索できれ
ばいいわけですよね。これを実装するの方法は今考えているところです。
おそらくかなり大きなインデックスが必要になると思います。でも、


>(インデックスファイルのサイズとかが、大きくなる分には、私個人としては
>あまりかまわないので、optionで一致行を含んだインデックスファイルを作る
>ように指定できるとか。)

私もこの立場なので (Linux なら e2compr があるし :-)) 、ぜひ実現さ
せたいところです。


>  世の中の多くの検索エンジンに、"一致行の表示"があまりないのは、実装(運用)
>が困難なためなのか、それとも需要がないためか。

実装としては単純に考えるとヒットしたキーワードをもとにファイルを 
grep するだけなので困難ではないと思いますが、ディスクアクセスが多
くなので運用として負荷が問題になるように思います。また、

| 1語のみの検索はページが増えれば増えるほど無意味になりますが,
| 複数キーワードの場合は,どう処理すればいいんでしょう?

という問題もあります。ちなみに、 Tknamazuの場合は検索結果と、リン
クをクリックしてファイルを表示させたときに検索で使われたキーワード
が赤くなるので便利です。

Namazu 側でも 200文字くらいの要約に対してキーワードの強調表示をさ
せようと考えたことはありますが、あまり嬉しくないような気がしたので
やめました。真面目に実装すると面倒だし。

# gooのような検索エンジンだと「一致行の表示」みたいな機能は著作権
# 的に問題があるかもしれません。素人考えですが。


ところで、フレーズ検索は最大4フレーズと制限をかければ、たとえば

if I like a program I must share it with other people who like it.

のようなセンテンスから 4単語づつ

if i like a            (data)...
i like a program       (data)...
like a program i       (data)...
a program i must       (data)...
program i must share   (data)...
i must share it	       (data)...
must share it with     (data)...
share it with other    (data)...
it with other people   (data)...
with other people who  (data)...
other people who like  (data)...
people who like it     (data)...
who like it	       (data)...
like it		       (data)...

のように分解してインデクスすれば実現しそうな感じはします。この方
法でどのくらいのインデクスのサイズになるのかはまだ調べていませんが。

# 実際には単語はすべて数値化して記録することになるかな。


フレーズ検索の実装に関して何かアイディアがあったら教えてください。

--
高林 哲 Satoru Takabayashi