SearchEstraierプラグインのインデックスに PDF や Microsoft オフィスドキュメントを追加して検索可能にします。
ファイル拡張子 pdf / xlsx / xls / docx / doc /pptx / ppt / html ( htm ) のファイルに対応しています。
plugins/DocumentSearch/filters にある以下のファイルを /usr/local/share/hyperestraier/filter (環境変数 : documentsearch_filter_path で指定したパス) にコピーします。
このスクリプトは Perlで書かれています。環境に応じて一行目の「#!/usr/bin/perl -w」を修正し、実行権限(chmod 755)を追加してください。
Perlモジュール「File::Temp」「Archive::Zip」が必要です。
以下の環境変数を必要に応じて config.json の config_settings に記述します。
以下のコマンドを実行して、pdf.txt に文書ドラフト形式のデータが保存されるかどうかを確認します。
文書ドラフト形式については、Hyper Estraier のユーザガイドを参照してください。
/usr/local/share/hyperestraier/filter/estfxpdftohtml "/path/to/filename.pdf" | /usr/local/bin/estcmd draft -fh > pdf.txt
※ 生成される文書ドラフトの例
@size=(文書のサイズ)
@title=PDF文書のタイトル
@type=text/html
PDFから抽出されたテキスト...
PDFから抽出されたテキスト...
PDFから抽出されたテキスト...
PDF文書のタイトル
このテストで文書ドラフトが正常に作成されない場合、plugins/DocumentSearch/filters にある以下のファイルを /usr/local/share/hyperestraier/filter (環境変数 : documentsearch_filter_path で指定したパス) にコピーします。
このスクリプトは Perlで書かれています。環境に応じて一行目の「#!/usr/bin/perl -w」を修正し、実行権限(chmod 755)を追加してください。
Perlモジュール「File::Temp」が必要です。
再度、以下のコマンド (/usr/local/bin/は pdftotextの設置場所のパス) を実行して、pdf.txt に文書ドラフト形式のデータが保存されるかどうかを確認します。
/usr/local/share/hyperestraier/filter/estfxpdftohtml2 "/path/to/filename.pdf" "/usr/local/bin/" | /usr/local/bin/estcmd draft -fh > pdf.txt
以下のコマンドを実行して、各々文書ドラフト形式のデータが保存されるかどうかを確認します。
/usr/local/share/hyperestraier/filter/estfxopenxmltohtml "/path/to/filename.xlsx" | /usr/local/bin/estcmd draft -fh > "xlsx.txt"
/usr/local/share/hyperestraier/filter/estfxopenxmltohtml "/path/to/filename.docx" | /usr/local/bin/estcmd draft -fh > "docx.txt"
/usr/local/share/hyperestraier/filter/estfxopenxmltohtml "/path/to/filename.pptx" | /usr/local/bin/estcmd draft -fh > "pptx.txt"
以下のコマンドを実行して、各々文書ドラフト形式のデータが保存されるかどうかを確認します。
/usr/local/share/hyperestraier/filter/estfxmsotohtml "/path/to/filename.xls" | /usr/local/bin/estcmd draft -fh > "xls.txt"
/usr/local/share/hyperestraier/filter/estfxmsotohtml "/path/to/filename.doc" | /usr/local/bin/estcmd draft -fh > "doc.txt"
/usr/local/share/hyperestraier/filter/estfxmsotohtml "/path/to/filename.ppt" | /usr/local/bin/estcmd draft -fh > "ppt.txt"
以下のコマンドを実行して、文書ドラフト形式のデータが保存されるかどうかを確認します。
/usr/local/bin/estcmd draft -fh "/path/to/filename.html" > "html.txt"
以下の例では、拡張子 pdf のドキュメントのみを対象とします。
<mt:estraiersearch phrase="$query" ad_attr="@suffix" add_condition="STREQ" value="pdf">
複数の条件指定時は AND 指定となるため、複数の拡張子を指定する場合は、除外指定する拡張子を以下のように複数指定します。
以下の例では、Microsoft Excelで作成されたファイル以外を対象に検索します。
<mt:estraiersearch phrase="$query" ad_attrs="'@suffix','@suffix'" add_conditions="'STRNE','STRNE'" values="'xls','xlsx'">
この指定の時、以下の条件式で検索を実行します。
/usr/local/bin/estcmd search -vx -max 10 -sn 200 100 100 -um -attr '@suffix STRNE xls' -attr '@suffix STRNE xlsx' '/path/to/support/search/index' 'キーワード'
以下の例では、拡張子 pdf のドキュメントのみを対象とします。
/powercmsx/plugins/SearchEstraier/app/pt-recommend-api.php?type=both&limit=5&url=(エンコードされたページのURL)&suffix=pdf
複数の条件指定時は AND 指定となるため、複数の拡張子を指定する場合は、除外指定する拡張子を以下のように exclude_suffixes パラメタに複数指定します。
以下の例では、Microsoft Excelで作成されたファイル以外を対象に検索します。
/powercmsx/plugins/SearchEstraier/app/pt-recommend-api.php?type=both&limit=5&url=(エンコードされたページのURL)&exclude_suffixes=xls,xlsx