(from saburota's Profile - OSDN)
いつもお世話になっております。
差分クロールのチェックボックスをONにしても、差分クロールが働かないのですが、解決方法など情報いただけないでしょうか?
対象ファイルはhttpサーバに置かれたPDFファイルなのですが、差分クロールのチェックボックスをONにしても、毎回全てクロールされてしまいます。
差分クロール
差分クロールを有効にすると、lastModifiedフィールドの値と対象ドキュメントの更新日時(HTTPの場合はLAST_MODIFIEDの値、ファイルの場合はタイムスタンプ)を比較して、更新されたものだけをクロールします。
ドキュメントにあるとおりに、HTTPヘッダのLast-Modifiedは正常にファイルのタイムスタンプを返していることを確認しました。
(curl --headコマンドで確認)
lastModifiedフィールドもsolradminで確認しましたが、ファイルのタイムスタンプが格納されていました。
PDF周りで変更しているのは、Fess標準ではクロール結果が文字化けを起こす頻度が多かったため、popplerのpdftotextコマンドを使うように変更しています。
他にチェックすべき点などありますでしょうか?
使用環境は以下の通りです。
Fess: 9.1.0
OS: CentOS 6.5
Java: Oracle jdk 1.7.0_51
情報だけでもいただけるとありがたいです。
(from osdn.net/users/saburota)
すみません。書き忘れた事項追加します。
当初、インデックスの有効期限が1日となっていたため、これが影響していると考え、
120日に変更しました。
JOB管理のCrawlerだけでなく、システム管理のクロール開始ボタンからのクロールでも結果は同じでした。
以上、よろしくお願いいたします。
(from shatake's Profile - OSDN)
PDF周りで変更しているのは、Fess標準ではクロール結果が文字化けを起こす頻度が多かったため、popplerのpdftotextコマンドを使うように変更しています。
上記を確認してみましたがその問題を再現することはできませんでした。
お手数ですが、webapps/fess/WEB-INF/classes/s2robot_extractor.diconとして保存した
ファイルの内容について教えて頂いてもよろしいでしょうか。
よろしくお願いいたします。
(from osdn.net/users/saburota)
ご返答ありがとうございます。
s2robot_extractor.dicon添付いたします。
当方では何が影響するかよくわかっていないため、その他で修正したものも添付いたします。
s2robot_extractor.dicon
<?xml version="1.0" encoding="UTF-8"?>
"/zenbun/fess1/bin/pdftext.sh $INPUT_FILE $OUTPUT_FILE"
"UTF-8"
<component name="extractorFactory" class="org.seasar.robot.extractor.ExtractorFactory">
<initMethod name="addExtractor">
<arg>{
“application/pdf”
}
pdfCmdExtractor
/zenbun/fess1/bin/pdftext.sh
pdftotext -nopgbrk -raw $1 - | sed ‘:loop; N; $!b loop; ;s/\n//g’ > $2
snapshotの取得設定
fess.diconに以下追加しました。
<component name="screenShotManager" class="jp.sf.fess.screenshot.ScreenShotManager">
<initMethod name="add">
<arg>pdfScreenShotGenerator</arg>
</initMethod>
</component>
<component name="pdfScreenShotGenerator" class="jp.sf.fess.screenshot.impl.CommandGenerator">
<property name="commandList">
{"bash",
"/zenbun/fess1/bin/pdf-screenshot.sh",
"${url}",
"${outputFile}"}
</property>
<initMethod name="addCondition">
<arg>"mimetype"</arg>
<arg>"application/pdf"</arg>
</initMethod>
</component>
/zenbun/fess1/bin/pdf-screenshot.sh
#!/bin/bash
tmpFileName="/var/tmp/$$_tmp.pdf"
wget -O $tmpFileName $1
pdftoppm -f 1 -l 1 -png -r 20 $tmpFileName > $2
rm -rf $tmpFileName
s2robot_contentlength.dicon (defaultMaxLengthを修正)
<?xml version="1.0" encoding="UTF-8"?>
1073741824L
“text/html”
2621440L
以上、よろしくお願いいたします。
(from osdn.net/users/saburota)
お世話になっております。
申し訳ありません。設定で伝え漏れているものがありました。
パスマッピングでURLを変更しています。
詳細は、
正規表現 http://aaa.bbb.ccc.ddd:1234/
置換文字 http://aaa.bbb.ccc.ddd/
処理方法 クロール時
表示順 0
としております。
お手数おかけして申し訳ありません。
よろしくお願いいたします。
(from osdn.net/users/shatake)
情報をありがとうございます。
頂いた設定ファイルを参考にし検証した所、問題再現いたしました。
お手数ですが、パスマッピングの処理方法をクロール時から表示時に変更して頂くと
差分クロールが有効になり現時点での回避は出来ると思います。
クロール時のパスマッピングの処理方法については
今後のバージョンで対応を検討いたします。
よろしくお願いいたします。
(from osdn.net/users/saburota)
ご検証いただき誠にありがとうございます。
表示時に変更したところ、検索結果の表示リンクは置換後のURLが表示されているのですが、
実際にクリックすると置換元のURLで開かれてしまいます。
また、クロールの設定パラメータに
field.config.cache=true
としてキャッシュを表示しているのですが、こちらの表示URLも置換前のものになってしまいます。
解決方法の情報をいただけるとありがたいです。
(from osdn.net/users/shinsuke)
現状、キャッシュのコンテンツに対して、パスマッピングの変換が適用されないため、次のリリースで対応したいと思います。