5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

巨大テキスト検索の専門化集合!HELP!

1 :名無しさん@お腹いっぱい。:2001/07/21(土) 18:49
UNIXで巨大テキスト(220M)からAND OR検索を高速で行いたいのですが、なかなかどうしてうまくいきません。
MYSQLのあいまい検索を使っても実行速度10秒。SUFARYは早いんですがAND検索が出来ないし・・。
巨大テキストファイルから高速検索できるような方法やソフトなどをご存知でしたら教えてください。

「デリミタがタブで改行コードにて一行とみてくれて、AND・OR検索が出来て、表示行数の指定ができる。」
というような方法(ソフト)を教えてください!。

2 :名無しさん@お腹いっぱい。:2001/07/21(土) 19:47
自分でプログラム書けよ。
漏れは自分で作ったが快適

3 :名無しさん@お腹いっぱい。:2001/07/21(土) 21:24
>>1
そんなことしないからわかんないんだけど、
namazuじゃだめ?
それがだめならIBMのメインフレームでも使ってちょ。

4 :名無しさん@お腹いっぱい。:2001/07/22(日) 11:22
libsary つかって AND は自前で実装、ってのはどうよ。
http://sary.namazu.org/

5 :名無しさん@お腹いっぱい。:2001/07/22(日) 18:02
1です。m(__)m
saryやsafuryを組み込んでAND検索してみました。(C言語バージョン)
ANDはやはり、ループでまわして一つ一つ照合しないとダメなのでしょうか。
ループだと複数になると、時間がかかってしまいます。

ループ以外のアルゴリズムなどあったら是非ご教授おねがいいたします。

6 :nobody@65535:2001/07/22(日) 22:44
単語ごとの行への出現ビットマップを作る。
あとはANDとるだけ。
1行何フィールドで何行、何種類の単語が出現するのか知らんが、
全部オンメモリで処理すればこれは速ぇーぞー(笑)。

7 :名無しさん@お腹いっぱい。:2001/07/24(火) 09:47
単語ごとのビットマップというと、INDEXのようなものですよね。
それなら、SUFFIX ARRAYを使用しました。

6>「あとはANDをとるだけ」

詳しくはどのようにしてANDをとればよろしいのでしょうか?。
もしくはビットマップを作成するときにSUFFIXARRYではなく、
もっと高度なアルゴリズムで簡単にANDをとれるのでしょうか?。

より良いアルゴリズムなどありましたら、是非おしえてください。
日本語・英語の文献ページなどありましたら、ご紹介ください。

8 :名無しさん@お腹いっぱい。:2001/07/24(火) 11:56
>>7
bitごとの論理積をとれって話でしょ。

インデックスは行番号とビットマップだけじゃなくてseek値も格納しとくといいんじゃないかな。

RDBMSでやろうとしてるみたいだけど無謀だからやめとけ。

9 :ゆい:01/10/11 12:33
事前に index を作成できるデータではないのでしょうか?

10 :DQN:01/10/11 12:46
grep
速いマシンで、
220MBがファイルデータキャッシュに載れば速いかも。
計ってませんが。

-AND
% grep str1 |grep str2 |head -行数
-OR
% grep -e str1 -e str2 |head -行数

カラム指定で検索したいなら工夫がいるな...

11 :いひひ:01/10/11 13:11
ファイルデータキャッシュに載れば?

 たーんとメモリ積んで最初からMemory File Systemで
やればすむだけのような気が。

12 :名無しさん@お腹いっぱい。:01/10/11 13:31
転置インデックス法だろーね.
岩波の「自然言語処理」って本にやり方がちょっと載ってるよ.
まぁ簡単だから,立ち読みでも十分ぽい.

あとはハッシュとかバイナリサーチ使えばかなり速いと思う.
ついでに言うと,アルゴリズムは簡単だけど,単語の揺らぎとか
を考えたりすると面倒かも.

13 :名無しさん@お腹いっぱい。:01/10/11 14:36
ごちゃごちゃ言わんとNAMAZU使えよ、grepとか考えにある時点で終わってる。
終了

14 :ぺー:01/10/11 21:09
ところで,それは,なんの仕事ですか?

15 :ナナシ:01/10/11 21:46
てゆか、3箇月近く前の話にレスポンスしても……

16 :名無しさん@お腹いっぱい。:01/10/11 22:06
netscape関連のファイルを探そうと思って
find / -name '*netscape*'
ってやったんですけど、ありませんでした
で、昨日うろうろしていたら、ありました。
この検索のやりかたっておかしいんですか?

17 :ぺー:01/10/11 22:53
こんな古いの上げるなよ(w

18 :sage:01/10/12 01:16
sage
sage
sage
sage
>>16
manしろよ
こういう馬鹿な奴多くていや

5 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)