全文検索エンジン Hyper Estraier 2
サバイバビリティの概念がないソフトウェア設計者がいるのか。
能力的に対処できないということはなさそうだから、
実世界の面倒くさいことから逃避するための言い訳か。
> アプリにバグが無くても OS の不具合で落ちることなんかしょっちゅうだしな。
そんな事がしょっちゅうあるようなOSは使わないのが普通。
開発者がアレだとユーザもアレなのが集まるというのを実感しないでもない。 >>86
おまえは Windows を使ったことがないのか? ●ノードマスタの異常終了(再起動シナイ)
サーバールートdirの _pid と _stop の削除
●DBの復旧
estcmd repair index_path
共有鯖で、クローラーを動かしてますが、突然、
「out of memory」で止まってしまいました。( p_q)エ-ン
クローラールートディレクトリ(rootdir)内が飛んだようで
以後、
estwaver crawl rootdir で 「could not open」となり起動できません。
メモリが少ないのはわかるのですが、先日までは正常に動作してました。
rootdirの復活方法など対処方法を教えてください (o*。_。)oペコッ >>85,86
耐障害性の確保は上位層でやれってことだろ。
オーバーヘッドを減らすためには妥当な技術選択だ。
あんたらが考えてるくらいのことはとっくに考えてるはずだよ。
その例としてTokyo Tyrantでちゃんと耐障害性を確保しているしな。
http://alpha.mixi.co.jp/blog/?p=147
これベースでHEを作ってくれないかなぁ。
mixi.jp 内で動いているエンジンを表に出して欲しい。
>>92
中見てないけどtokyoestraierってのがそうじゃないの?
>>92
選択肢の一つではあるが、技術的に妥当な選択だとは思わないな。
用途が制約される(上位層やユーザがその要求を履行するのは難しい)という点で。 トレードオフのある技術選択において何が妥当かはユースケース次第だろう。
consistencyを真面目に考えたらそれこそスタンドアロンでは実現できないし。
DesktopHEでファイルサイズとテキストサイズの上限を調整する方法教えてくれよ。 node配下のインデックスファイルって
別のHEシステムにインポートできないかな。
独立したサーバAで作ったインデックスを
別の独立したサーバBにrsyncで飛ばして してクローン作るとか・・・
rsyncでやってみれば
多分動くでしょ。AとBのアーキテクチャが同じなら
Q. ビッグエンディアンもしくはリトルエンディアンのマシン上で動きますか?
A. はい。どちらでも動作します。ただし、双方でインデックスを
共有することはできません。
そうでない場合は共有できるんじゃないの?
> 101
私やってますよ
サーバAでestwaverで集めて、サーバBにrsyncで飛ばして、検索はBで
ってシステム構築してます
AもBも同じPC同じOSですが >>101-102
レスd
バックアップとしても使えそうね
てか過疎で誰も居ないかと思ってたけど
人がまだ居て嬉しかった(´;ω;`)ブワッ tokyocabinetのwin32版って、どこ? ttp://tokyocabinet.sourceforge.net/spex-ja.html#faq
Q. : Windowsで利用できませんか?
A. : 残念ながらできません。今のところ対応予定もありません。
>>52
>pthreadsライブラリのないシステムで動かしたいんですが
Hyper Estraierの前身の Estraierが pthreadsを必要としてなかったのでそっちを入れました。 Windowsで作成したデータベースをFreeBSDにコピーして使用しようと思い「P2Pガイド」の
「初期導入の効率化」を参考にデータベースを作成したのですが、検索が上手くいきません。
FreeBSD側に持っていっても、estsmdでは正常に検索できるのですが、サーバを立ち上げて
estcallを使うと、検索結果のヘッダ(ヒット数など)は表示される物の、それに続くはずの
文書一覧が表示されません。
どなたか原因分かる方見えませんか? >>111
GNU pth というのがあったとですか。勉強になりました。
でも本当の UNIX系OSではなくて UNIXエミュレーション環境なので pth では無理かも。
ともかく調べてみます。ありがとね。 インデックス作成していたらout of memoryで止まるorz
物理メモリ1GB、仮想メモリ1.4GB使い切る・・・
-ftなんか使う物じゃないんだろうか
javaとかのソースコードも見たいんだけどなぁ・・・ インデックス対象に Excel ファイルとか含まれてる?
Excel のせいでメモリ不足になってるならこういう話がある
http://pmakino.jp/tdiary/20070501.html#p01 なるほど。参考になりました。
大学の研究室のファイルサーバ(約600GB)の検索用に導入しようと試みているんですが
実験のログやそれをとりまとめたxls、論文のdocやpdf、プレゼン用のppt(x)に
実験プログラムなどなど混沌としているため目的のファイルを探すのが容易になればと・・・
-ftじゃなくて.javaなどもテキストファイルとして認識するようにどこか変更すればいいんだろうか。
がんばっていろいろいじってみます KaMailV3でH.E使っているんですが、mh形式のメールを登録したときに、メール内の添付ファイル名で検索することってできるんでしょうか。
H.E単体で、できないものであれば、あきらめようと思っていますが。 Windowsバイナリ版1.4.9を数台のPCに設置&P2P連携し、
デフォルトの検索インターフェイスやコマンドラインからメタ検索をしているのですが、
似た内容のファイルが複数ヒットすると数件しかスニペット表示されません。
(例えば、5件のファイルがヒットしてもスニペット表示されるのは1件だけとか)
何かオプションを指定するなどしてヒットしたすべてのファイル、
あるいは上位何件かのファイルのスニペットを表示させる、
ということはできないのでしょうか? Tokyo Estraier http://hyperestraier.sourceforge.net/past/?M=A
てさ、0.0.1とかいうバージョン番号のせいで内容を見る気になってなかったんだけど、
実際見てみたら HE 1.4.13 で Tokyo Cabinet を使えるようにしたものなんだね。
今まではQDBMが壊れやすいせいでHEを敬遠してたのだけど、これは良いかも。
これで実運用してる人とかいるかな?
まあ本命は Tokyo Dystopia なんだけどさ。Rubyバインディングとかつくってほしいなあ。
http://tokyocabinet.sourceforge.net/dystopiadoc/
壊れやすいよね。
問題なのは壊れたのに気づかないという・・・
リペアしてもリペア出来てないという・・・ 検索結果をXMLで受け取りたいときはどうしたらいいの? estcmd なら estcmd search に
-vxを付けると、属性情報とスニペットをXML形式にして結果を出力します。
ってマニュアルに書いてあるよ。
それ以外は自分でAPI使ってXML返すプログラムを作るってのが
本来の使い方だろうね。
256Mのバーチャルサーバーで動かしてます。
検索時はメモリオーバーになるらしく、プロセスがKILLされまくります。
どれくらいのメモリがあれば使えるものですか? 128M の玄箱 HG でも動いているが…
なんか使い方おかしいんじゃね? >>124
バーチャルサーバのスワップはちゃんととってます? 検索対象拡張子を追加するにはどこいじればいいんだろう?
.javaとかをテキストとして処理するようにしたいんだが・・・ バーチャルサーバのスワップ?
どうやって取るんだろ。。( p_q)ワカンネっす PLASKサーバーです
_conf の設定が悪いのでしょうか。。P2P(estmaster)で使ってます。
_confにメモリ周辺の設定ってありましたっけ? .netからDLLを利用しようと思ってます。
が、検索のAPIがDLL内でmallocしたものを返す仕様になっており、
メモリ解放ができません。
内部で完結するよう関数追加してビルドしなおししかないでしょうか? DTDって変更したいときは任意の場所に出来るのかな?
デフォルトのファイルを書き換えるだけ?
>>129
どうしたいのか分からんが、間にラッパーを
かませればいいんじゃないの?
>>131
はい、ラッパー作った方がいいと思います。
ラッパーのビルドもcygwin入れて本体と同じライプラリつかってやるんですよね。きっと。
UNIX系はさっぱりで、makeファイルすらよくわからず、相当時間がかかりそうです。
とり急ぎ直近はSearch系だけestcmdでやっちまおうと思います。
ギャザラはDLL使うのでなんとも不格好なんですが。 freeをcrtからインポートすればいいだけじゃないの? makeの設定とdllの中身見たらmsvcrt.dllでいいみたいですね
どうもありがとうございました。 質問です。
windows環境でRailsの開発をしててHyper Estraierを使いたいんですが、
配布されているバイナリパッケージにRubyバインディングが見当たりません。
Cygwinでソースをmakeしても、Hyper Estraier本体は入るんですが、
Rubyバインディングのmakeでコケます。
windowsでは無理?
ショボ頭の自分助けて…
pdfをインデックス化したいんですけど、30MB超えるpdfだと、
文章の途中までしかインデックス化してくれません。。
特にエラーとか出てないんですけどなんでだろ?
$ estcmd gather -cl -fx ".pdf" "H@estfxpdftohtml" -fz -ic UTF-8 -il ja -lf -1 -lt -1 -sd -cm casket ./
一応、-lf -1 -lt -1で、ファイルサイズ制限無しとかにしてみるんだけど、
マニュアルとかGoogle先生とか聞いても対処方法もわかんなくて、、
こんなバカ助かるかな?
>>138
estfxpdftohtml スクリプト中に「ulimit -v 262144 -t 10 2> "/dev/null"」ってのがあるから
「262144」の部分を適当に多くしてみるとどう?
>>114
うちの estmaster もインデックスにデータを投入するごとに肥大化しているような。
お客さんのところでメモリ使用量 1GB 越えも発生したので、調査する予定。(;_;)
… その前に Tokyo Estraier を試してみようかしら?
>>139
うぅ、バカに救いの手をありがとうございます。orz
少しインデックス化できた文章が増えたので、イケルか!と思ったんですが、
値を倍位に変更しても、それ以上は増えなくて、やっぱり途中で切れちゃってる。_| ̄|○|||
( -t 10 => 500とかもしてみたけどダメだった…)
なにげに、
$ pdftotext -enc UTF-8 -htmlmeta "pdfファイル"
これでやってみると、きちんとオワリまで文章がテキスト化されているみたい。
新たに発覚したんだけど、どうもpdf文章の途中でたまたま出てくる「<<」の記号から、
「>>」の所まで、ごっそり文書がインデックス化されてないっぽい。(゚ロ゚;))((;゚ロ゚)オロオロ
すまん、かえって混乱させてるかも。。
というか、自分混乱してる。 >>141
ああ、わかった…。(たぶん)
pdftotext のバグですね。
pdftotext -enc UTF-8 -htmlmeta "$infile" - 2> "/dev/null" | output
の部分を:
pdftotext -enc UTF-8 -htmlmeta "$infile" - 2> "/dev/null" \
|sed '/<pre>/,/<\/pre>/{s/&/\&/g;s/</\</g;s/>/\>/g}' \
| output
とでも書き換えてみてください。(これだと「pre」が単語として登録されてしまうが…。)
# sed 's/ -htmlmeta / -raw -nopgbrk /' /usr/bin/estfxpdftohtml > /usr/bin/estfxpdftotext
# chmod 755 /usr/bin/estfxpdftotext
とでもして、
$ estcmd gather -cl -fx ".pdf" "T@estfxpdftotext" -fz -ic UTF-8 -il ja -lf -1 -lt -1 -sd -cm casket ./
とするとか。
>>142
ホントすいません、付き合って頂いちゃってありがとうございます。
pdftotext のバグですか!?
だとすると、こんなド素人に使いこなすのは難しくなっちゃうかも。。現状で満足せなあかんですかね(;´ー`)
スクリプトありがとうございます(人-)
ただかなり初歩的な部分で分からないところが…(滝汗) そもそも sed がイマイチ分かってないしょっぱい自分…
> # sed 's/ -htmlmeta / -raw -nopgbrk /' /usr/bin/estfxpdftohtml > /usr/bin/estfxpdftotext
> # chmod 755 /usr/bin/estfxpdftotext
estfxpdftohtml や estfxpdftotextは /usr/local/share/hyperestraier/filter にあって
/usr/bin には無かったりするんですが、その辺は読み替えろよこんちくしょう的な感じでしょうか…?(゚Д゚;)アワワ
それともそのままやっちゃっても大丈夫的な感じでしょうか?
>>144
まずは pdftotext のバグについて。
pdftotext は -htmlmeta オプションを付けると PDF に含まれる
本文のテキストを簡単な HTML にして、プラス文書情報 (Adobe Reader なら
[File] - [Properties] で表示される情報) を HTML の <meta> に
含めてくれますが、PDF 本文のテキストは <pre> で囲まれるだけで
その中に含まれる <, >, & を <, >, & に変換してくれません(バグ)。
なので PDF に「<HTMLのタグではない適当な文字列>」という文が含まれていると、
estcmd がそれを HTML のタグと認識してしまい、削除してしまいます。
sed がやっていることですが、<pre>〜</pre> の間の <, >, & を
<, >, & に変換しているだけです。
最後に estfxpdftohtml(text) の置き場所ですが、私の手元の Debian の
hyperestraier パッケージでは /usr/bin に置かれているというだけで、
そっちの環境で /usr/local/share/hyperestraier/filter なら、
そっちに合わせて ↑ に置くのがいいと思います。
# sed 's/ -htmlmeta / -raw -nopgbrk /' \
/usr/local/share/hyperestraier/filter/estfxpdftohtml \
>/usr/local/share/hyperestraier/filter/estfxpdftotext
>>143
ハンドル(?)をググると出てくるので、そっちをどうぞ。:-)
ありゃ? 「&lt;」(実際は半角)とかが「<」に変換されちまった…。
どうしたらいいの? ま、いいか。 初心者板で聞いてきました。「&amp;」って書くのね…。
pdftotext -enc UTF-8 -htmlmeta "$infile" - 2> "/dev/null" \
|sed '/<pre>/,/<\/pre>/{s/&/\&/g;s/</\</g;s/>/\>/g}' \
|output
その中に含まれる <, >, & を <, >, & に変換してくれません(バグ)。 >>147
す・すすごい!!できたできました!!(・∀・∀・)
ごっそり抜けちゃってた文章も、タグだと誤解されてしまってたんですね。
きちんとインデックスに戻ってきました、戻ってきましたよ!!щ(゜ロ゜щ) カモ-ン
天才ですかfumiyasさま… (シ_ _)シ ネ申 >>147
ほんにありがとうございます。
確かにインデックスの方には <pre> が単語化されているようですが、
これはもう、しょうがないですよ…ね…?
はぁぁ、感動しちゃいました。(;∀; ) >>148
解決されたようでなによりです。
「pre」が気になるようなら、上で書いたように estfxpdftohtml
の代わりに estfxpdftotext でもどうぞ。estcmd の -fx オプションの
値を変更するのを忘れないように。
Hyper Estraierで、URI属性をフレーズ検索の対象とする方法はありますでしょうか。
すみません教えてください。
ファイルサーバ(Xとか入れてません)として使っているetchにHyper Estraierを入れてわりと経つのですが、
pdfの日本語がインデックスに入っていないことに気付きました。
いろいろ調べて、ひとまずpdftotextが日本語を変換してくれてないのだ、と分かりました。
degas@debian:~$ pdftotext 日本語入りのpdf.pdf
Error: Unknown character collection 'Adobe-Japan1'
:
Error: Unknown character collection 'Adobe-Japan1'
ってな状況ですorz。xpdfはapt-getでhyperestraierをインストールするときに
推奨パッケージでxpdf-utilsを入れたので、大丈夫だと思っているのですが…。
念のためいまxpdfも入れてみましたが、同じエラーが出ます。
指針が有ればお願いしますm(_ _)m。 Unknown character collection 'Adobe-Japan1' でググっても解決しないの?
xpdf-japanese とやらを入れてる? ttp://www.foolabs.com/xpdf/download.html
にある
xpdf-japanese.tar.gz
は入れた? ありがとうございます。
xpdf-japaneseはapt-getだと入らないのですよ…何でか分からないけど。 解決しました。
xpdf-commonをapt-getでインストール、
cmap-adobe-japan1を取ってきてdpkgでインストール、
さらに/etc/xpdf/xpdfrcに
include /etc/xpdf/xpdfrc-japanese.dpkg-new
を書き加えればOKでした。
apt-getしか使えない男にお付き合いいただきありがとうございました。
お邪魔しました。
ファイルを指定ディレクトリに置くだけだからapt-getイラネですよ。
DLしてtar xvfzしてREADMEだかINSTALLだか読めば分かると思う。 tokyo estraierはここ以外で存在が話題になっていないんだけど
商用、あるいは公用の検索システムに勝手に使っちゃっていいんだろうか >>158
GPL と LGPL だし、問題ないでしょ。(たぶん :-)
で、tokyo estraier どんなくらい試しました?
>>159
>>158じゃないけれど
普通にインデックスして普通に検索出来て普通に遊べて…
これ、本当にインデックス時にTokyoCabinet使ってるのか不安になってきた データベースファイルの先頭バイトを覗いたら、[depot]って書かれてたりして >>161
う…_attrフォルダの中に「depot」ファイルがあるんだが 過去のバージョンと、Windows版のバイナリパッケージのページが落ちてるようなんだが。
UNIX板でアレだけどWin版の1.4.10持ってる人だれか上げてくれないかな… >>163
ttp://www2.uploda.org/uporg1754116.zip.html ディレクトリ一覧がデフォルトでは表示されなくなっただけなので
正確なファイル名が分かるとか、検索サイト等のキャッシュから手繰るとかで
落とせますよ。
ttp://hyperestraier.sourceforge.net/win/hyperestraier-1.4.10-win32.zip
>>164
>>165
ディレクトリ一覧が表示されないだけだったのか。
ありがとう、助かりました。
お早いレスで俺涙目。 Windows環境でMecabを使いたいんですけど、可能ですか?
試した手順は、下記になります。
前提:WindowsXP、Cygwin環境
1、Mecab0.97と辞書のビルド
2、下記サイトを参考にし、qdbmとHyperEstraierのビルド
ttp://www.shinonon.dyndns.org/diary/20071212.html
HyperEstraierのビルドで--enable-mecabとしましたが、
その後のmakeでエラーとなります。 >>167
ttp://hyperestraier.sourceforge.net/past/tokyoestraier-0.0.1.tar.gz
ベースはHyper Estraier1.4.13
ソース見ると確かにTokyo Cabinetのincludeが入ってるんだが
実際に使われてるのかちと分からん
QDBMも一緒に入ってないとエラー出るし
ところで100万以上の文書を対象にインデックス作ると想像以上に遅いんだな…
1秒以下でパパッと結果が表示されるのは何件くらいが限度なんだろ TE コンパイルしてみた。`estcmd create db` だけ試した。
>>162
_idx 以外は QDBM を使ってるんで、_idx だけ見てごらん。
$ /usr/local/tokyoestraier/bin/estcmd crete db
$ strings db/_idx/0001
ToKyO CaBiNeT
1.0:510
>>169
HE ソースとの diff とってみればわかるけど、一部のみ TC, ほかは QDBM。
ちなみに、`estcmd repair db` 時に _idx 以下は何もしないようになっている。
いいのか? いまのところ DB の構成を把握していないのでよくわからんが、
_idx が転置インデックス? ほかは? 知っている人、教えて…。
あと 100万以上の文書は試したことないんでアレなんだけど、
参考までにハードウェアの構成とか、estcmd create に
指定したオプション (estcmd を使っているなら。-xh 付けたの?)、
estmaster の _conf の設定等を教えてもらえると嬉しいです。
Hyper Estraierについて質問させてください。
Windowsで一回動かしたんですが、cygwinのパスで結果が表示されてしまうので、
うれしくないと思い、VMware2.5.1 build-126130 でUbuntu7.10を動かし、
そちらでestcmd gather を走らせました。Hyper Estraier1.4.9です。
Apacheはxamppを使いました。http://localhost/xampp/ は正常に表示されてると
思います。1.6.8aと出ています。あとphp5もスタートさせました。
でも、http://localhost/cgi-bin/estseek.cgi にアクセスすると、
Error: the configration file is misshing.とか出ます。
/opt/lampp/cgi-bin/estseek.cgi と同じフォルダに estseek.confは置いてます。
estcmd search casket 'ほげほげ'
とかはちゃんとHITして結果が出てきます。
Errorが出てくる原因は何でしょうか。分かる方教えてください。 自己レスです。よく分かりませんが
estseek.conf
estseek.tmpl
estseek.top
をchmod 744 したら動きました。失礼しました。 >>53
すげー遅レス失礼。
HEの情報収集中→WikipediaのHEのエントリ→ >>53 の製品ページ
って感じでその製品を知ったんだけど、GPLって書いてるくせに
ソースコードダウンロードのリンクをたどってもソースコードがないんだけど、
これってどうなの?
ttp://www.osstech.co.jp/product/chimera#%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89
つーか、会社概要見たけど、中の人がこのスレにいるのか。 >>173
別に公開する必要は無い。
会社側からするとChimera Searchのバイナリとあわせてソースコードを提供する、
もしくはバイナリにソースコードの入手方法が明記された文書を添えておけばいい。
GPLv2での3-aと3-bね。 >>174
そうなんだ。どうもありがと。
Webページ見たけど個人お断りみたいな事書いてあったな。
関係ないけどGPL v2日本語訳の原文へのリンクが間違ってるね(v3にリンクされてる)。 GPLはちゃんと読んでない人は世間の評判から誤解しやすいライセンスだから、
批判するんだったらちゃんと読んで理解してからにした方がいい。 >>173
これ読むといいよ。
http://web.archive.org/web/20041024013051/http://home.catv.ne.jp/pp/ginoue/memo/gpl.html >>47にも書いてるけど,属性検索ができない.
Wikipediaの全文検索デモページで試してみたけど効果なし... 疑似ノードマスタって、認証なしなの?
通常のノードマスタみたいにユーザとパスを設定できないの? estcmd outで文書の一括削除はできますか? Windows版のバイナリ落としてindexだけはコマンドで作ってみたんですが
JavaのAPI使ってファイル検索や全文検索を行うサンプルコードが載って
いるサイトとかってないですかね?
web環境ないのでSwingから直で操作したいのですがAPIの使い方がよくわかりません・・
初歩的な質問ですいません。 Unix板なのに申し訳ないのですが、Ubuntu Intrepid64bit版を使っています。
mecabを組み込みたかったのでソースからビルドしましたが、ライブラリとしてregexp.hだけ認識されないのでビルドできません。
32bitの時も同様だったのですが、こちらはネットでダウンロードしたライブラリをつっこんでインストール迄無事に成功しました。
aptitude search lib | grep -i regexp などで見つけたものを次々インストールしてみましたが全くお手上げです。
必要なライブラリについてご存知の方いませんか? >>182
やったの去年だからよく覚えてないけど
ふつーのUbuntuならソフトウェアの一覧に普通に入っていた気がする >>183-184
レス有難うございます、結局手順を忘れていただけで、32bit版でと同様の事をすればいいだけですんなりビルド成功。
aptでlibc-dev(これですよね?)を入れてもlibregex.aがないので、http://arglist.com/regex/からregex3.8a.tar.gzを落してビルドし~/lib ~/includeに放り込む。
似たような事で困っている方は試してみて下さい。
どうもお騒がせしました。 作者ページのタイトルがうざくなってるんだが、改ざんされたのかな