全文検索エンジンNamazu ver2
全文検索エンジンNamazuについてアレコレ http://www.namazu.org N-gram戦争中w 全文検索ユーティリティ統一スレッド part3 ttp://pc8.2ch.net/test/read.cgi/bsoft/1120649196/ インディックス作成時に読み込む文字種を正規表現で指定できますか? 記号は除外するとかです mknmz -K 文字列処理: -E, --no-edge-symbol 単語の両端の記号は削除する -G, --no-okurigana 送り仮名を削除する -H, --no-hiragana 平仮名のみの単語は登録しない -K, --no-symbol 記号をすべて削除する あとはソース書き換えかな NamazuをCGI(localhost)で利用しているのですが、検索結果と して表示されたファイルが開けません。よろしければ、お教え 願えないでしょうか? 検索結果のファイルを選択 Forbidden You don't have permission to access /C|/a/b/c/d/f/soturon.html on this server. ------------------------------------------------------ Apache/2.0.55 (Win32) PHP/5.0.5 Server at localhost Port 80 という表示になります。 各種設定はNamazu2.014のインストーラのデフォルトです。 .namazurc の Replace で正しい URI に書き換えれば良いという話なのです がどうにもうまくいかなくて。。。 索対象のファイルのpath C:/a/b/c/d/1/ファイル C:/a/b/c/d/2/ファイル C:/a/b/c/d/3/ファイル という様にファイルを格納しています。 そして、CGIはローカルホストで動かしているのですが、http:// 以下はどのように指定すれば良いのでしょうか? httpd.conf に書いた <Directory> ディレクティブ Alias ディレクティブ ぐらいは示さないとコメントのしようがないよ >>198 >>NamazuをCGI(localhost)で利用(win32) 多分だけど C|このせいだと思う。昔はまった。 <a harf=c|となってると見れないはず ブラウザによるけど lynx では個別にルール指定できてC|/ C:と置換指定。 なんでもlynxが内部で指定置換してくれる。 だからオリジナルは弄ず。w3m あたりも平気 firefox,oprea,IE系は無理だった気が... なんか慣行らしいけど|。GUIのブラウザだと無理?かも?? namazuの方がC|じゃなくてC:/と吐いてくれないと。パスを。昔 考えたのは適当にsed噛ますとかして置換ちゃえばとか思った が...namazu -hで吐かせてるからsedでフィルタすれば...と テキストブラウザで使えるしそのまま...圧縮したまま使えるか ら。普通のブラウザだと圧縮したまま動かないんで... 公開しないし個人で使う分には書換ちゃっていいと思うけど、セ キュリティ上よくないのかね? cgi?どこで吐いてるのかわかんないけど|を/に変えるべく追って 弄らないといけないと思う。winの代表的な各種ブラウザで見た いなら >そして、CGIはローカルホストで動かしているのですが、http:// 設定を晒してくれ 「Replace http://localhost/C |/ file:」 にしとけ >198です。 インデックス作成のオプション指定に気をつけ、きちんとドキュメントルート を確認の上、.namazurcのReplaceを設定したら無事にできました。 ありがとうございました。 UNIX板ですが、話題がNamazuなので。。。 以下について、どなたかご教示願えませんか? Windows XPでNamazuを利用しているのですが、これからPHP(5.0) でNamazuを使うために、Namazuモジュール(php-namazu-2.3.1) をインストールしたいと考えています。 調べた限りでは、現在はPECLもCVSも利用できない(Namazuモジュール) ということでした。Windowsでこのモジュールをインストールするにはど のような手順を踏めばよいのでしょうか? それと、塚田卓也さんという方がNamazu関数をWindows版PHPで も使えるように開発された、モジュール「php4_namazu-3.0.0PHP4.3.x 」があるそうですが、これは5.0でも使えたりするのでしょうか? >204 マルチよくない ttp://www.namazu.org/pipermail/namazu-win32-users-ja/2006-October/001443.html 使えたりするかどうかは自分で試してみたの? いや、[PHP4---]というモジュール名から見るに、多分使えないだろう なぁと思って、試してはいません。ただ、使えるか知っている方がいた ら、その是非を教えて欲しいなぁと思いまして。 もう1つの、WindowsへのNamazuモジュールのインストールのほうは自分 でもそれなりに調べたりしましたが、どうも分からなかったもので。。。 namazurcってmknmzしたときには適用されないんですか? replace使いたいんですが… --replace というオプションがある ttp://www.namazu.org/doc/tutorial.html#run-mknmz namazuの検索結果をEUC-JPで出力させているのですが、Shift_JISで書かれた ファイルの内容がそのままShift_JISで出力されてしまうため、検索結果が文 字化けしてしまいます。何か設定が必要なんでしょうか。 tp://www.ki.nu/software/namazu/tutorial/make.html#PERL_MODULEで namazu 1.9.12 以降では Chasen2 にだけ対応している。 とありますが、kakasiは使用できないということでしょうか? 検索結果にキーワードが最初にファイルの何行目に登場するか、の情報って取得できますか? google検索エンジンみたいに、キーワードのヒットした前後の文章を結果一覧に出したいのですが・・・ >>216 そんな古い情報参照しないでよ... http://www.namazu.org/doc/tutorial.html#prep-make >>217 namazu.cgi単独では無理。コマンドラインならnmzgrepというのがあるけど、 あれは単に検索結果に基づいてあとでgrepしているだけ。 libnmz使って同等のことをやるか、Hyper Estraierでも使ってみるのが吉。 Namazu の ML はなぜ iso-2022-jp でも Content-Transfer-Encoding: 8bit で送ってくるんだろう。なんか気持ち悪いなあ。 Linuxにnamazu-2.0.16をインストールして、 インデックスの作成とNamazuコマンドでの検索が出来るようになったのですが 検索対象はファイルの中身だけで、ファイル名は検索外にする事は可能でしょうか? index.htmlを検索しても表示されない、でもindex.htmlの中身に書いてある文章で 検索を掛けると表示されるようにしたいのですが・・・ >>221 mknmz の namazu_core というサブルーチンに $content .= "\n\n$filename\n\n"; # add filename という行がある これを削ってインデックスを作り直す >>222 真にありがとうございます。上手く行きました。 ただ"index.html"だと表示されないようになったのですが、"index"で検索すると表示されてしまいます。 これも表示されないようにする方法はありますでしょうか?何度も質問して申し訳ありません スレ違いかもしれませんが、 自分がよく利用するウェブサイトの一部のコンテンツをNamazuで検索可能にしたいの ですが(Google等では何故かうまく出てこないので)、 その場合はウェブサイトの必要なコンテンツをローカルにダウンロードして、 それをNamazuにかけるわけですよね? ウェブサイトのコンテンツをダウンロードするのにお勧めのソフトはありますか? wwwoffle+Namazuという組合せはどうか。 squid cacheも対応フィルタがどこかにあったような。 EmphasisTags "<strong class=\"keyword\">" "</strong>" みたいに設定してキーワードをハイライトさせているのですが、 キーワードの出現位置が検索結果の本文表示文字数のリミットと 被る場合にタグを閉じてくれず、次の行から真っ赤っかになってしまいます。 回避する方法ってあるのでしょうか? ダブルクオーテーション内の連続した文字 "、狼8、" で検索かけたいのだがノイズ入りまくり /、狼8、/ も試したが今度は見つからないとか言われた 勝手に要素に分割するなああああ mknmz -CでCoding System: eucってでるんだけどsjisにするにはどこの設定を弄れば良いですか? Cording Systemの意味わかってないんじゃない? 検索結果をSJISにしたいんだったら .namazurcでShift_JISに設定すればいいだけだし。 ちなみにNamazuのインデックス内部はeuc。 >>236 なるほどありがとうございます Namazuのインデックス内部はeuc。 ということはインデックスさせるページはEUCで記述しないと駄目なんですか? >>238 むむむ・・ sjisで書いたページをmknmz -kでインデックス作ると NMZ.wの中が所々文字化けるんですよ。。。 何かアドバイスお願いします。 # mknmz -C わかち書き: /usr/local/bin/kakasi -isjis -osjis -w メッセージの言語: ja_JP.SJIS 言語: ja_JP.SJIS 文字コード: euc mknmzする前にsetenv LANG ja_JP.SJISしてます /usr/local/bin/kakasi -ieuc -oeuc -w に戻せばいいよ kakasiに渡される前にeucに変換されているのですよ。 >>240 >>241 なるほど!解決しました! ありがとうございます! >>229 激しく亀レスだが、日付ソート(新しい順)の結果が スコア順のソートと同じ結果になっている気がするんだが……。 共有鯖でインスコしたいのですがsshやtelnet以外でインスコする方法ありませんか? 鯖が対応してなくて困ってます。 新しいバージョンのnamazuだけど、namazu.cgiがnamazurc読み込んでないな。 なんかバージョンアップのたびに質が落ちてる。 ナマズ作り直してくれねーかなあ。バカスカメモリ食いやがって。このへたくそが。 それを必要な人がそれをやるしかないんだよ。 いわゆる言い出しっぺの法則 ――言い出しっぺがやらなければ誰もやらない―― だね。 なんでこれ環境変数と設定ファイルで同一の設定値を設定しないといけないんだ? 混乱するだけだと思うんだが。 世の中からこういうバカがいなくなればいいなあ。 windows環境でのNamazuでofficeを入れない環境で office文書を検索対象に含めるには何のソフトが有効ですか? Microsoft Office Viewerを入れたら可能ですか? また、zipなどの圧縮ファイル名を検索対象にするにはどうしたらいいでしょう? よろしくおねがいします >>257 officeを入れない環境ではxdoc2txt.exeが有効。 windows環境ではzipには標準で対応している。試してみましたか? 説明書を読んでますか? ttp://www.namazu.org/doc/manual.html#doc-filter よろしくおねがいします 14ではzip対応していなかった。 18では全部できました。 lzhを対象にしたフィルタはない? ここは潰れてる http://log.counterghost.net/20040417.html >>259 lzhを対象にしたフィルタはcvsにはあるっぽいね http://cvs.namazu.org/namazu/filter/ でもwindowsでは使えないかもね sub status() { return 'no' if ($English::OSNAME =~ /^(?:MSWin32|os2)$/i); # Only LHa for UNIX. $lhapath = util::checkcmd('lha'); とかあるからwinは無理っぽいですね。。。 http://log.counterghost.net/20040417.html ↑持っている人どこかに上げてくれないだろうか・・・ 質問です。 WindowsXP + NTEmacs22.2 + Gnus の環境で Namazu を使っていますが、 Fedora9 + Emacs23 + Gnus で同じようにインストールした Namazu だと 「山田」のような固有名詞でも検索出来ますが、Winの場合だと同じ名前 で検索に引っかかりません。 (その名前が含まれたメールは存在してます。) 一般的な名詞だとどちらも同じように検索できてます。 環境としては、Win は ja_JP.SJIS で、Fedora9 は ja_JP.utf8 です。 両方共 Kakasi を使ってます。 何か気づいた点などありましたら教えてください。 すみません。教えてください test.tgzという1GBほどのファイルがあった場合に、 中身のについてのindex作成を行わずに ファイルの名前とパスのみをindexに残したいのですが、 どのように設定すればよいでしょうか? たとえばtest.tgzをtgzで検索にひっかけるなど、 ファイル名だけでも検索に引っかかるようにしたいのですが 可能でしょうか? 64bit Linuxマシン(Red Hat Linux ES5)でnamazuをインストールしようとしますと、 Text/ChaSen/ChaSen.so \ -L/usr/local/lib -lchasen \ /usr/bin/ld: /usr/local/lib/libchasen.a(chalib.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libchasen.a: could not read symbols: Bad value collect2: ld はステータス 1 で終了しました make: *** [blib/arch/auto/Text/ChaSen/ChaSen.so] エラー 1 というエラーがでます。 どのように対処したらよろしいでしょうか? GOOGLE検索してもなかなか解決策が出てきません。 よろしくお願いします。 メッセージに recompile with -fPIC と言っているから、それを試みる。 >>267 recompile with -fPIC というのはどういうふうに試せばいいのでしょうか? これも検索したんですが、よくわかりません。。 >>268 rpmはでていないようです。さがしてみたんですが。。 少し説明不足だったように思いますので、付け加えますと、 http://www.asahi-net.or.jp/ ~wv7y-kmr/memo/namazu.html を参考にし、 Text::chassen perl moduleをインストールしようとし、 $ perl Makefile.PL $ make をした後に、266のメッセージはでます。。 >>270 茶筅のライブラリ /usr/local/lib/libchasen.a(chalib.o) が読み込めないと言って居るんだから ライブラリをシステムに合わせて構築し直せ。 >>271 すみません、もう少しヒントをもらえますか? どのようにしてライブラリを構築しなおすといいのでしょうか? 自分がやったのは、 $perl -fPIC Makefile.PL ですが、それもエラーがでました。このへん詳しくないので。。 >>269 はじめのカキコのメッセージは、namazu のコンパイルオプション云々 じゃなくて、namazu をビルドするときに使おうとしているchasen のライブラリが 変だよ、といってるの。リンクに失敗しているんで、libchasen を -fPICという のオプション付けてコンパイル (gcc) してくれたら直るとおもうよ、と言っているの.。 察するに、-fPIC オプションは実際には不要で、単に、chasen のソースを とってきて、./configure; make; sudo make install ; sudo ldconfig とやれば 済みそうな気もするが。 >>272 茶筅のインストールに失敗しているんだろ ttp://chasen.naist.jp/hiki/ChaSen/?%A5%BD%A1%BC%A5%B9%A4%AB%A4%E9%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB 茶筅単体で動くことを確認してみろ。 あと、茶筅のバージョンは最新か? いらん話: -fPIC だが、茶筅の Makefile の CFLAG に 追加。 (このモジュールはCだかC++だかで書かれていたはず) 茶筅の最新版の取得先 ttp://sourceforge.jp/projects/chasen-legacy/ >>273 様 >>274 様 ありがとうございます。 chasen自体は、 $ chasen EOS テスト テスト テスト テスト 名詞-サ変接続 のように動いています。 ただ、 namazuで使う perl moduleの Text::chasen がうまく入ってくれません。 chasen はchasen-2.4.4を使っています。これが最新のようです。 chasenのコンパイル時のMakefileにCFLAGに-fPIC をつけてもうまくいきません。。 もし何か分かりましたら、よろしくお願いいたします。 64bitマシンがだめなのでしょうか? 32bitのときは問題なく前は入ったのですが。。 64bitでnamazuはあきらめたほうがいいということなのでしょうか? >>269 「うまくいきません」 .so に関するエラーのとき、ldconfig したかどうかがまず確認箇所だけど、どう? あと、google すると、以下のようなもんがすぐ引っかかってくるが、チェックした? http://www.daionet.gr.jp/ ~knok/chasen/ http://www.namazu.org/pipermail/namazu-users-ja/2008-June/001090.html # 64bitでnamazu 64bit マシンなら、chasen のライブラリは、/usr/lib じゃなくて /usr/lib64 のほうに行っていて、namazu の Makefile がそれに 適切に対応していない可能性がある。 >>278 >>.so に関するエラーのとき、ldconfig したかどうかがまず確認箇所だけど、どう? これはしております。 >>あと、google すると、以下のようなもんがすぐ引っかかってくるが、チェックした? http://www.daionet.gr.jp/ ~knok/chasen/ はい、patchはあてています。 http://www.namazu.org/pipermail/namazu-users-ja/2008-June/001090.html これは、まだチェックしきれていませんが、むつかしそうですね。調べてみます。 >>279 >>64bit マシンなら、chasen のライブラリは、/usr/lib じゃなくて >>/usr/lib64 のほうに行っていて、namazu の Makefile がそれに >>適切に対応していない可能性がある。 /usr/lib64にはlibchasen系は入っていなかったです。/usr/libに入っています。 > >>適切に対応していない可能性がある。 > /usr/lib64にはlibchasen系は入っていなかったです。/usr/libに入っています。 「64bit版のライブラリは /usr/lib64 に置く必要があるかも?」って話なんだけど。 mknmzで大規模データを一日かけて実施していたところ、 NMZ.lock2 ファイルを発見しました このインデックスは他のプロセスによって更新されている可能性があります というエラーがでました。おそらく前回、途中でmknmzをやめ、indexファイル群 を削除せずに再度mknmzを実施したからだと思います。 仕方ないので、このlock2ファイルを削除し、 mknmz -Y で差分更新をしようと思うのですが、前回エラーで中断したところから、うまく 再開できますか? よろしくお願いいたします。 280です。別の64bitマシンを借りて、インストールをし直してみたところ、インストールはうまく いったのですが、別の問題が起きています。。 Text::Chasenの64bitマシンへのインストールでつまずいています。 以下のように、Text::Chasenのインストール自体には成功しているように 見えるのですが、perlからよびだせていないようです。 検索して、LIBS lstdc++ chasenなどを、Makefile.PLに足したりはしているのですが、 それでもうまくいっていません。 $ sudo make install Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Text/ChaSen/.packlist Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod $ perl -MText::ChaSen -e '' Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Text/ChaSen/ChaSen.so' for module Text::ChaSen: libchasen.so.2: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230. at -e line 0 Compilation failed in require. BEGIN failed--compilation aborted. lddをすると以下のようになります。libchasen.so.2のある場所がおかしいのでしょうか? どうすればいいかわからないので、何かアドバイスをいただけないでしょうか? $ ldd /usr/local/bin/chasen libchasen.so.2 => /usr/local/lib/libchasen.so.2 (0x00002aaaaaaad000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000032afc00000) libm.so.6 => /lib64/libm.so.6 (0x00000032a9c00000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000032af400000) libc.so.6 => /lib64/libc.so.6 (0x00000032a9800000) /lib64/ld-linux-x86-64.so.2 (0x00000032a8800000) よろしくお願いします。 Text::ChaSen をビルドする前に、Makefile.PL のなかのLIBS指定、 'LIBS' => ['-L/usr/local/lib -lchasen' みたくしてる? namazuでmknmzする際の最大メモリ使用量が32bitマシンでは、4GBでしょうか? それだと足りなくて、 Out of memory! NMZ.lock2 ファイルを発見しました となる場合はどうすればよいでしょうか? >>287 近代化されているかは不明だけど、バージョンアップされているね。 Namazu 2.0.20 http://www.namazu.org/index.html.ja#news 6万貰ってセックヌしてきたぞ!! 濡れた熟マンに入れたら、肉ヒダがしっとり絡みついてきて、 そんだけでイきそうになったわww http://xabrina.net/om/c9y94mf mknmz + pdftotext で PDF ファイルをインデックス化してるんだけど、 100MBを超える PDF だと、out of memory のエラーが出る。 mknmzrc の記述はチェック済み ($FILE_SIZE_MAX, $TEXT_SIZE_MAX, $ON_MEMORY_MAX)。 マシンのメモリは 4G 積んでるので、実際のメモリ不足ではないと思う。 ご存知の方、よろしく。m(_ _)m 環境:Namazu for Windows (ver. 20.0.20) on WinXP SP3 Active Perl 5.8.9 read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる