全文検索エンジン Hyper Estraier 2
景気よくageます.
Windows版バイナリパッケージのverは1.4.10で止まったままなんでしょうか.
どなたかビルドしておられたらありがたいですが
辞書データ変換ツール一般についてと
(製品版のデータを全部持った)体験版のデータ変換についての話が
入り乱れてないか?
これ、データーベース(QDBM)が壊れまくり。
DBが開いた状態で、プロセスが落ちると100%ぶっ飛ぶ
速いらしいが、こんなん怖くて使えないわ。
どうでもいいような、無くなってもいいデータしか扱えないわ。
さてと、1000万件のデータ、ゼロから収集だわ(鬱
なんとかならんでしょうかね 俺もbsfilterでqdbm使ってたらすぐ壊れたんでsdbmに変えた・゚・(つД`)・゚・ >>77
よかったな! sdbmの方が圧倒的に速いぞ。
まぁ〜、トラック と
ノーヘルどころか、頭蓋骨すらない脳味噌丸出しのバイク便の差。
高速道路で同じ荷物を運んで どっちの運ちゃんが逝くかは明白。
シートベルト程度の防御は欲しいけど、速さと安全は成り立たないだろね。
RAMにカキコされたキャッシュ程度のモンよ
HE+Tokyo Cabinet に変わるまで待てよ TC ってさらに速さを追求したライブラリなんじゃネーの?
安全性上がるのか? ああ、
http://alpha.mixi.co.jp/blog/?p=90
> 耐障害性の向上 : データベースファイルが壊れにくい
って書いてあるな。
速度だけでなく安全性も向上するのか。 http://alpha.mixi.co.jp/blog/?p=98
> QDBMにおいては、データベースを開いているアプリケーションが異常終了した場合、
> もしくはデータベースを適切に閉じずに終了した場合は、データベースが壊れるように
> していました。それらは明白なバグであり、アプリケーションの作者やそれを使うことを
> 選択したユーザに何らかの意識的な対処を求めることが適切であると考えたからです。
> (中略)
> しかし、上記のような理想主義と「上から目線」では現実の問題に対処できないことを
> 近ごろ感じはじめました。マナーを守らない/守れないユーザやユースケースも結構な
> 割合で存在するのが現実なのです。したがって、TCは、マナーを守らないアプリケー
> ションやそのユーザにも宥和する戦略に転換しました。
突然の停電とか当たり前に起こりうる事態なんだから、
バグとかマナーとかそういう問題じゃないと思うんだよな…
アプリにバグが無くても OS の不具合で落ちることなんかしょっちゅうだしな。 サバイバビリティの概念がないソフトウェア設計者がいるのか。
能力的に対処できないということはなさそうだから、
実世界の面倒くさいことから逃避するための言い訳か。
> アプリにバグが無くても 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が出てくる原因は何でしょうか。分かる方教えてください。