テキスト抽出設定¶
概要¶
ファイルからテキストデータを抽出する機能の設定値です。この設定は、IM-ContentsSearch のクローリング等から利用されるテキスト抽出機能(ND Universal Extractor)の共通のデフォルト設定として利用されます。コラム
本設定は、2024 Autumn(Jasmine) から利用できます。
モジュール ND Universal Extractor フォーマットファイル(xsd) WEB-INF/schema/im-nd-extractor-config.xsd 設定場所 WEB-INF/conf/im-nd-extractor-config.xml <?xml version="1.0" encoding="UTF-8"?> <im-nd-extractor-config xmlns="http://intra-mart.co.jp/system/im_nd_universalextractor/internal/utility/config/im-nd-extractor-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://intra-mart.co.jp/system/im_nd_universalextractor/internal/utility/config/im-nd-extractor-config ../schema/im-nd-extractor-config.xsd "> <default-extractor> <default> <min-size>0</min-size> <max-size>100M</max-size> <properties> <!-- temporary directory sample for Linux --> <property name="tmpDir" type="string">/tmp</property> <!-- temporary directory sample for Windows --> <!-- <property name="tmpDir" type="string">C:\temp</property> --> </properties> </default> <mapping> <!-- Entry for text files --> <entry type="text/plain" extension="txt" max-size="1M" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.PlainTextExtractor" /> <!-- Entry for HTML files --> <entry type="text/html" extension="htm,html" max-size="1M" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.HtmlExtractor" /> <!-- Entry for XML files --> <entry type="text/xml" extension="xml" max-size="1M" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.XmlExtractor" /> <!-- Entry for Word files --> <entry type="application/msword" extension="doc" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.WordExtractor" /> <entry type="application/vnd.openxmlformats-officedocument.wordprocessingml.document" extension="docx" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.WordxExtractor" /> <!-- Entry for Excel files --> <entry type="application/vnd.ms-excel" extension="xls" max-size="10M" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.ExcelExtractor" /> <entry type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" extension="xlsx" max-size="10M" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.ExcelxExtractor" /> <!-- Entry for PowerPoint files --> <entry type="application/vnd.ms-powerpoint" extension="ppt" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.PowerPointExtractor" /> <entry type="application/vnd.openxmlformats-officedocument.presentationml.presentation" extension="pptx" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.PowerPointxExtractor" /> <!-- Entry for Visio files --> <entry type="application/vnd.visio" extension="vsd" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.VisioExtractor" /> <!-- Entry for zip files --> <entry type="application/zip" extension="zip" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.ZipExtractor" /> <!-- Entry for PDF files --> <entry type="application/pdf" extension="pdf" precedence="1" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.PdfExtractor" /> <!-- 以下の要素は無効化されています --> <!-- xpdfを利用してPDFを処理する設定 --> <entry enabled="false" type="application/pdf" extension="pdf" precedence="3" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.XpdfExtractor"> <property name="exeFile" type="string">C:\pdftotext_home\pdftotext.exe</property> </entry> <!-- xdoc2txtを利用してPDFを処理する設定 --> <entry enabled="false" type="application/pdf" extension="pdf" precedence="2" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.Xdoc2txtExtractor"> <property name="tmpExtension" type="string">pdf</property> <property name="exeFile" type="string">C:\xdoc2txt_home\xdoc2txt.exe</property> </entry> <!-- DocuWorksファイルを処理するLinux向けの設定 --> <entry enabled="false" type="application/vnd.fujixerox.docuworks" extension="xdw" precedence="1" class="jp.co.intra_mart.foundation.contentssearch.extraction.extractor.DocuWorksExtractor4Linux"> <property name="tmpExtension" type="string">xdw</property> <property name="exeFile" type="string">xdw2text</property> </entry> <entry enabled="false" type="application/vnd.fujixerox.docuworks.binder" extension="xbd" precedence="1" class="jp.co.intra_mart.foundation.contentssearch.extraction.extractor.DocuWorksExtractor4Linux"> <property name="tmpExtension" type="string">xbd</property> <property name="exeFile" type="string">xdw2text</property> </entry> <!-- DocuWorksファイルを処理するWindows向けの設定 --> <entry enabled="false" type="application/vnd.fujixerox.docuworks" extension="xdw" precedence="1" class="jp.co.intra_mart.foundation.contentssearch.extraction.extractor.DocuWorksExtractor4Windows"> <property name="tmpExtension" type="string">xdw</property> </entry> <entry enabled="false" type="application/vnd.fujixerox.docuworks.binder" extension="xbd" precedence="1" class="jp.co.intra_mart.foundation.contentssearch.extraction.extractor.DocuWorksExtractor4Windows"> <property name="tmpExtension" type="string">xbd</property> </entry> </mapping> </default-extractor> </im-nd-extractor-config>コラム
DocuWorks文書を処理する設定
DocuWorks文書を処理するLinuxまたはWindows向けの設定については、「Accel Documents / IM-ContentsSearch for Accel Documents 仕様書」を参照してください。コラム
単位サフィックス
整数を記述する場合は、単位を示す 単位サフィックス を末尾に付け加えた形式が利用できます。例えば「百万」という整数を記述するには通常 1000000 と記述しますが、これを 1M と書くことができます。利用可能な単位サフィックスは、 k , M , G , T のいずれかです。以下に、例を示します。
- 10k = 10,000
- 100M = 100,000,000
- 90G = 90,000,000,000
- 711T = 711,000,000,000,000
リファレンス¶
デフォルトのテキスト抽出設定¶
タグ名 default-extractor デフォルトのテキスト抽出設定を表します。詳細な設定は配下のタグで行います。【設定項目】
<im-nd-extractor-config> <default-extractor> ... </default-extractor> ... </im-nd-extractor-config>
必須項目 ○ 複数設定 × 親タグ im-nd-extractor-config
パラメータ既定値¶
タグ名 default テキスト抽出パラメータを既定値を設定します。<mapping> タグ内にて設定されたすべての <entry> に対する共通の既定値です。【設定項目】
<im-nd-extractor-config> <default-extractor> <default> ... </default> ... </default-extractor> ... </im-nd-extractor-config>
必須項目 × 複数設定 × 親タグ default-extractor
テキスト抽出対象ファイルサイズ最小値の既定値¶
タグ名 min-size 【設定項目】
<im-nd-extractor-config> <default-extractor> <default> <min-size>0</min-size> ... </default> ... </default-extractor> ... </im-nd-extractor-config>
必須項目 × 複数設定 × 省略時のデフォルト値 0 (制限なし) 親タグ default
テキスト抽出対象ファイルサイズ最大値の既定値¶
タグ名 max-size 【設定項目】
<im-nd-extractor-config> <default-extractor> <default> ... <max-size>100M</max-size> ... </default> ... </default-extractor> ... </im-nd-extractor-config>
必須項目 × 複数設定 × 省略時のデフォルト値 0 (制限なし) 親タグ default
プロパティ既定値一覧の設定¶
タグ名 properties プロパティの既定値の一覧を設定します。プロパティの設定は配下の property タグで行います。【設定項目】
<im-nd-extractor-config> <default-extractor> <default> ... <properties> ... </properties> </default> ... </default-extractor> ... </im-nd-extractor-config>
必須項目 × 複数設定 × 親タグ default
プロパティ既定値の設定¶
タグ名 property プロパティの既定値を設定します。【設定項目】
<im-nd-extractor-config> <default-extractor> <default> ... <properties> <property name="tmpDir" type="string">tmp</property> </properties> </default> ... </default-extractor> ... </im-nd-extractor-config>
必須項目 × 複数設定 ○ 親タグ properties 【属性】
属性名 説明 必須 デフォルト値 name
nameの値 説明 tmpDir 添付ファイルからテキスト抽出する際に一時的に利用する、ディレクトリのパスを指定します。 ○ なし type JavaBean プロパティ値の型を指定します。指定可能な値は、 string , int , long , double , null のいずれかです。○ なし
テキスト抽出器クラスの対応関係一覧の設定¶
タグ名 mapping 拡張子 および MIMEタイプ に対応するテキスト抽出器クラスの対応関係を設定します。対応関係の設定は配下の entry タグで行います。【設定項目】
<im-nd-extractor-config> <default-extractor> ... <mapping> ... </mapping> </default-extractor> ... </im-nd-extractor-config>
必須項目 ○ 複数設定 × 親タグ default-extractor
テキスト抽出器クラスの対応関係の設定¶
タグ名 entry 拡張子 および MIMEタイプ に対応するテキスト抽出器クラスの対応関係を設定します。【設定項目】
<im-nd-extractor-config> <default-extractor> <mapping> ... <entry enabled="false" type="application/pdf" extension="pdf" precedence="3" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.XpdfExtractor"> ... </entry> ... </mapping> </default-extractor> ... </im-nd-extractor-config>
必須項目 ○ 複数設定 ○ 親タグ mapping 【属性】
属性名 説明 必須 デフォルト値 enabled この entry が有効とみなすかどうかを、 true または false で指定します。false を指定した場合は、この entry はテキスト抽出に用いられません。× true min-size テキスト抽出対象とするファイルの境界値を含んだ最小サイズ設定します。ファイルサイズがこの範囲内におさまらない場合は、そのファイルの中身からテキストが抽出されません。設定値には 単位サフィックス が利用可能です。× なし max-size テキスト抽出対象とするファイルの境界値を含んだ最大サイズ設定します。ファイルサイズがこの範囲内におさまらない場合は、そのファイルの中身からテキストが抽出されません。0以下の値を指定した場合、無制限であることを意味します。設定値には 単位サフィックス が利用可能です。× なし type MIME タイプを指定します。 ○ なし extension 拡張子を指定します。半角カンマで区切って、複数の拡張子を記述できます。例) extension=”htm,html” と記述すると、「htm」「html」という二つの拡張子に対応する entry であることを表します。○ なし class 指定した MIMEタイプ および 拡張子 を持つファイルからテキストを抽出するための、テキスト抽出器クラスの完全修飾Javaクラス名を指定します。○ なし precedence 同じMIMEタイプまたは拡張子に対して複数のテキスト抽出器クラスを設定した場合に、どのテキスト抽出器クラスを優先するかを整数値で指定します。大きな値を指定するほど、優先度が高くなります。× 0
テキスト抽出器クラスのJavaBeanプロパティの設定¶
タグ名 property entry タグにて指定されたテキスト抽出器クラスをインスタンス化する際に、JavaBeanプロパティとしてセットされる値を設定します。【設定項目】
<im-nd-extractor-config> <default-extractor> <mapping> ... <entry enabled="false" type="application/pdf" extension="pdf" precedence="3" class="jp.co.nttdata.intra_mart.contentssearch.text.extraction.extractor.XpdfExtractor"> <property name="exeFile" type="string">C:\pdftotext_home\pdftotext.exe</property> </entry> ... </mapping> </default-extractor> ... </im-nd-extractor-config>
必須項目 × 複数設定 ○ 親タグ entry 【属性】
属性名 説明 必須 デフォルト値 name JavaBean のプロパティ名を指定します。○ なし type JavaBean プロパティ値の型を指定します。指定可能な値は、 string , int , long , double , null のいずれかです。○ なし
付録¶
コラム
ログレベルを debug にすることで、クローリング失敗時に標準のテキスト抽出器クラスの Exception ログを出力できます。
<logger name="jp.co.intra_mart.system.contentssearch.internal.solrj.parser.impl.UniversalExtractorTextParser">
<level value="debug" />
</logger>
システムプロパティで Apache POI の上限値を調整する¶
標準のテキスト抽出処理で使用している Apache POI は、レコード長等の上限サイズをデフォルト持っており、それを超過するとエラーが出力されます。
以下条件に当てはまる場合、システムプロパティで上限値を調整する必要があります。
- テキスト抽出対象に Microsoft Office ファイルが含まれている。
- Microsoft Office ファイルのテキスト抽出に標準のテキスト抽出クラスを使用している。
値の算出とシステムプロパティの設定¶
max-size と後述の拡張子毎の倍率を使って値を算出し、JVM 引数にシステムプロパティを設定します。算出値はすべてのファイルがエラーなくテキスト抽出できる値ではありません。エラーログの内容からシステムプロパティの値を設定をする場合は以下を参照してください。
拡張子毎の倍率
以下の倍率は目安であり、すべてのファイルがエラーなくテキスト抽出できる値ではありません。
extension レコード長倍率 テキスト倍率 doc、docx 2 0.1 xls、xlsx 10 1 ppt、pptx 2 0.1 ppt、pptx 2 0.1
レコード長の最大サイズ( jp.co.intra_mart.system.repackage.poi_5_2_3.org.apache.poi.byteArrayMax )¶
各 entry の max-size × レコード長倍率 の中で一番大きな値を jp.co.intra_mart.system.repackage.poi_5_2_3.org.apache.poi.byteArrayMax に指定してください。例えば max-size 100M の docx の entry と、 max-size 100M の xlsx の entry が設定されている場合、xlsx の 100M × 10 = 1000M を指定します。JVM 引数にシステムプロパティを設定する例は以下の通りです。※ Apache POI のデフォルト値は 100000000 バイトです(100M)。この値より小さい場合はシステムプロパティの設定を省略できます。-Djp.co.intra_mart.system.repackage.poi_5_2_3.org.apache.poi.byteArrayMax=1000000000
最大テキストサイズ( jp.co.intra_mart.system.repackage.poi_5_2_3.org.apache.poi.textScale )¶
各 entry の max-size × テキスト倍率 の中で一番大きな値を jp.co.intra_mart.system.repackage.poi_5_2_3.org.apache.poi.maxTextSize に指定してください。例えば max-size 10M の xlsx の entry と、 max-size 500M の pptx の entry が設定されている場合、pptx の 500M × 0.1 = 50M を指定します。JVM 引数にシステムプロパティを設定する例は以下の通りです。※ Apache POI のデフォルト値は 10485760 バイトです(約10M)。この値より小さい場合はシステムプロパティの設定を省略できます。-Djp.co.intra_mart.system.repackage.poi_5_2_3.org.apache.poi.maxTextSize=50000000