search.json
search.jsonファイルには、文書全体のテキスト内容がJSON形式で記述されています。設定オプションで有効にすることができるオプションアセットです。IDRViewer Complete UI使用時(BuildVuの初期設定)に有効化されます。
基本構造:
[
"Text on page 1",
"Text on page 2",
"...etc"
]
目的:
search.jsonファイルの目的は、文書検索の簡略化です。すべてのHTMLやSVGページを読み込んで解析する必要がなく、ドキュメントの内容全体を簡単に検索する方法を提供します。
重要な相違点
search.jsonの内容は、以下の例外を除き、HTML/SVGの内容と完全に一致します。
1. HTML エンティティ
In the HTML and SVG content, アンパサンド &
, より大きい >
と より小さい <
の文字は、HTMLエンティティ& > <
に置き換えられるのに対し、search.json ファイルではそうではありません。
2. リガチャー
PDFファイルでは、グリフがffi → ffiのような複数文字の抽出値を持つ場合があります。これは合字によく見られることで、合字の外観は文体のために使用され、抽出値は分解された形となります。
このような場合、HTML/SVGコンテンツには合字フォーム(フォントが正しい外観を表示するために必要)が、search.jsonファイルには分解されたフォームが含まれます。
このとき、HTML/SVGには、DOMコンテンツとsearch.jsonコンテンツの対応付けを定義するdata属性が追加されます。例) <span data-mappings="[[13,'ffi']]">The ligature ffi decomposes to ffi.</span>
その他の注目情報
PDFファイルでは、テキストの見た目は正しいのに、抽出値が壊れていることがあります。これは、PDF作成ツールの設定ミス、PDFディスティラーの使用、あるいは作者が意図的にエンコーディングを壊して意味のあるテキスト抽出ができないようにした場合などに起こることがあります。これは文字化けと同じような結果になります。
このような場合、BuildVuは、壊れた値(制御文字や結合文字範囲にある場合がある)が文書の外観を壊すことを防ぐために、抽出値の再マッピングが必要になる場合があります。
このような場合、BuildVuはフォント内のPUA(Private Use Area)に文字を再マップすることがあります。このような文字がHTMLやSVGで表示される場合、フォントによって文字が正しく表示されるようになります。しかし、このような文字をフォントなしで表示する場合(例:検索結果のスニペットとして返される場合)、文字の外観が正しくなくなります。
多くのアプリケーションでは、私用領域範囲 (U+E000–U+F8FF
) の文字は通常 .notdef glyphとして表示されますが、これは保証されていません。