全文検索エンジン Hyper Estraier 2
138 :
名無しさん@お腹いっぱい。:
ショボ頭の自分助けて…
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先生とか聞いても対処方法もわかんなくて、、
こんなバカ助かるかな?
139 :
fumiyas:2008/07/25(金) 12:27:12
>>138 estfxpdftohtml スクリプト中に「ulimit -v 262144 -t 10 2> "/dev/null"」ってのがあるから
「262144」の部分を適当に多くしてみるとどう?
140 :
fumiyas:2008/07/25(金) 12:55:11
>>114 うちの estmaster もインデックスにデータを投入するごとに肥大化しているような。
お客さんのところでメモリ使用量 1GB 越えも発生したので、調査する予定。(;_;)
… その前に Tokyo Estraier を試してみようかしら?
141 :
名無しさん@お腹いっぱい。:2008/07/25(金) 15:21:53
>>139 うぅ、バカに救いの手をありがとうございます。orz
少しインデックス化できた文章が増えたので、イケルか!と思ったんですが、
値を倍位に変更しても、それ以上は増えなくて、やっぱり途中で切れちゃってる。_| ̄|○|||
( -t 10 => 500とかもしてみたけどダメだった…)
なにげに、
$ pdftotext -enc UTF-8 -htmlmeta "pdfファイル"
これでやってみると、きちんとオワリまで文章がテキスト化されているみたい。
新たに発覚したんだけど、どうもpdf文章の途中でたまたま出てくる「<<」の記号から、
「>>」の所まで、ごっそり文書がインデックス化されてないっぽい。(゚ロ゚;))((;゚ロ゚)オロオロ
すまん、かえって混乱させてるかも。。
というか、自分混乱してる。
142 :
fumiyas:2008/07/26(土) 02:26:06
>>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 ./
とするとか。
144 :
名無しさん@お腹いっぱい。:2008/07/28(月) 14:06:44
>>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 には無かったりするんですが、その辺は読み替えろよこんちくしょう的な感じでしょうか…?(゚Д゚;)アワワ
それともそのままやっちゃっても大丈夫的な感じでしょうか?
145 :
fumiyas:2008/07/29(火) 13:53:59
>>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 ハンドル(?)をググると出てくるので、そっちをどうぞ。:-)
146 :
fumiyas:2008/07/29(火) 13:57:46
ありゃ? 「&lt;」(実際は半角)とかが「<」に変換されちまった…。
どうしたらいいの? ま、いいか。
147 :
fumiyas:2008/07/29(火) 15:56:25
初心者板で聞いてきました。「&amp;」って書くのね…。
pdftotext -enc UTF-8 -htmlmeta "$infile" - 2> "/dev/null" \
|sed '/<pre>/,/<\/pre>/{s/&/\&/g;s/</\</g;s/>/\>/g}' \
|output
その中に含まれる <, >, & を <, >, & に変換してくれません(バグ)。
148 :
名無しさん@お腹いっぱい。:2008/07/30(水) 18:50:03
>>147 す・すすごい!!できたできました!!(・∀・∀・)
ごっそり抜けちゃってた文章も、タグだと誤解されてしまってたんですね。
きちんとインデックスに戻ってきました、戻ってきましたよ!!щ(゜ロ゜щ) カモ-ン
天才ですかfumiyasさま… (シ_ _)シ ネ申
>>147 ほんにありがとうございます。
確かにインデックスの方には <pre> が単語化されているようですが、
これはもう、しょうがないですよ…ね…?
はぁぁ、感動しちゃいました。(;∀; )
149 :
fumiyas:2008/08/01(金) 01:35:58
>>148 解決されたようでなによりです。
「pre」が気になるようなら、上で書いたように estfxpdftohtml
の代わりに estfxpdftotext でもどうぞ。estcmd の -fx オプションの
値を変更するのを忘れないように。