全文検索エンジンNamazu ver2
全文検索エンジンNamazuについてアレコレ http://www.namazu.org >>148 専用のスクリプトを用意して cron とかで作成させると 効果的なんだろうか? >>149 nkfの最新版(それ以前もたぶん)はUTF-8の文字コードを誤認する。 これをすべてNAMAZUに任せると当然、検索できないindexが作成される。 丹誠込めて念入りにindexを作ることが重要だ。ちゃんと変換できてるとか目で見て。 >>150 ああ、文字コードはそうかもね。 で、どうやって >>148 みたいなフィルタの結果をなまずに渡すの? $ フィルタスクリプト | mknmz とか? ふつうにテキストで固定してindexを作成する。オプションの設定。 なまずは自動判別するからpdfでもhtmlでも中身がテキストなら そうなるけどテキストに固定した方が早い。 >>151 たとえば10000ファイルあったとしたら 構造、拡張子を保ったまますべてのファイルをEUCコードに変換する。 そしてまたすべてのファイルを分かち書きする(-wオプション)。 UTF-8を誤認することは間違いないのだがどれがUTF-8かを見つけるのが苦労する。 データだけ他サーバーに置くことは出来ますか? あと複数のindexを検索するにはどうしたらいいですか。 データだけ他サーバー =>できる。 複数のindexを検索する =>マニュアル夜目。 >>156 でも動作鈍いんですよね? 無料のとくつーにデータ全部おくことにします。 fc2にデータおいて広告なし無料cgi可のページから検索したかったんですけど。 いや、『データ』だけ他のサーバにおくのはかんたんでしょ。読み出せないけど。 少し困っていることがあるので,教えてください. Namazuのログで,検索ワードにヒットした文書ごとの 検索ワードの出現回数TFを出力できたりしますでしょうか? ご教示お願いします. また,タイトル<title>にその検索ワードが使われていたかどうか などもログ出力できると助かるので,そういうことができるか もお教えください. 検索キーワードのログを見たいのですが、設定ファイルを Logging on にするとどこにログが保存されているのでしょうか? また、ログの保存場所を指定するにはどのようにしたらよいでしょうか? NMZ.slogに保存されます。場所はたぶん変えられないかな。 Estraier、NAMAZU、msearch でデフォルトの設定で、 インデックスの作成時の負荷がかかる順に並べるとどうなりますか? msearch は知らないけど、 HyperEstraier は Namazu より軽いと思う。 重い要因は * Perlで書かれている * File::Findによるディレクトリ走査 * File::MMagicによるコンテンツの種別確認 * DB書き込み速度がPerlのhashに依存 このへんかなあ。 msearchもperlだよ。 NAMAZUよりmsearchのが軽いのかな? HyperEstraier はよく知らんけど何で書かれてるの? msearchって、仕組みを知って爆笑してしまったぜ。 namazuって、検索結果を重要度が高い順に並べたりしてくれる ような機能ってあるっけ? >>175 重要度は分からんが、ポイント機能ならあるぞ 最近では、EstraierとNAMAZUどっちが人気? Namazuのようにインデクシングの際に形態素解析を用いている 検索エンジンと、その他、形態素解析を用いない検索エンジンとは インデックス作成の時間以外でどのような違いがあるのでしょうか? >>177 Google Trendsでも使ってしらべれ。 >>179 検索時の精度。すくなくとも再現率(recall)はn-gramのほうが高い。 namazuでPDFファイルを検索し、概要だけであればhtmlで、 全文を見るのであれば、PDFで見るというふうにしたいのですが、 どうすればよいでしょうか?概要のhtmlは作ってあるのですが、ど うすれば検索時にhtmlとPDFを選択できるのかなぁと思いまして。 よろしければ、お知恵をお貸しください。 NMZ.result.* に概要のHTMLのURIを追加すればOK。 概要のHTMLのURIを${uri].htmlにして、その場所に概要のHTMLを格納するのが 楽そうだ。 >181 参考にさせていただきます。ご回答ありがとうございました。 NMZ.* ファイルの仕様 http://www.namazu.org/doc/nmz.html.ja 上記を読んでもよく分からなかったのですが、 結局検索エンジン (namazu.exe)はどういう手順で 検索クエリから目的の文書を探し出すの? NMZ.i には単語情報はないんだよね? 1.まずNMZ.iiで検索文字列から算出したハッシュ値をキーにして NMZ.iのレコード番号を引く 2.NMZ.i の該当レコード番号から文書IDを引っ張ってくる 文書IDと対象ファイルの対応表はどこにあるのかなぁ?(・〜・)ウーム バージョン1.xのときはNMZ.f とNMZ.fi というファイルがあって 各ファイルの情報を記録していた。 2.xからは NMZ.field.{subject,from,date,message-id,...} NMZ.field.{subject,from,date,message-id,...}.i の2つのファイルがその代わりをしている。 行番号=文書IDとなっている。 NMZ.wが単語表で、NMZ.wiがそのインデックス(各単語の先頭のオフセット値が 入っている)。 NMZ.wはコード順にソートされているので、NMZ.wiとNMZ.wをバイナリサーチ すれば該当するNMZ.wiのファイルの位置から単語IDが求まる。 まあ最悪mknmzとlibnamazu.cあたりをみればわかるよ。 Namazu(最新版)をWindows XPで使いたいのですが、カスタマイズを行う 場合は、バイナリではなく、ソースコードからインストールしなければ ならないでしょうか? カスタマイズする内容によるが、普通いらない。 必要になるのはソースコードレベルで埋め込まれている出力を いじるときぐらい。 それもほとんどはgettext化されてるので、ja.poだけいじって差し替えれば 済む話だし。 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読み込んでないな。 なんかバージョンアップのたびに質が落ちてる。 ナマズ作り直してくれねーかなあ。バカスカメモリ食いやがって。このへたくそが。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる