コンテンツにスキップ

制限事項

tebunko の検索対象外となる内容と、機能上の制限をまとめます。既知の問題の詳細は、設計書の 既知の問題 を参照してください。

単一 .ps1 版(試験版)

単一 .ps1 版は試験版です。zip 版・インストーラー版と次の点が違います。

  • 窓とバージョン情報のアイコンは、既定のアイコンになります。
  • tebunko.bat が行う起動の失敗の記録(言語モードなどの記録)はありません。
  • 起動の途中の失敗は、zip 版と同じくメッセージボックスで知らせることがあります。ファイルそのものが壊れていて読み込めないとき(ダウンロードが途中で切れたときなど)は、PowerShell の窓がすぐに閉じ、理由を読めません。そのときは SHA256SUMS.txt でハッシュを確かめ、ダウンロードし直してください。
  • 単一 .ps1 は日本語のまま BOM 付き UTF-8 で配ります。保存し直すなどで BOM が落ちても、日本語が化けずに動きます。Shift_JIS で保存し直したものは対象外です(日本語の Windows の Windows PowerShell 5.1 では日本語以外の文字が ? になることがあり、それ以外の環境と PowerShell 7 では英語の案内を出して止まります)。UTF-8(BOM 付き)で保存し直してください。
  • PowerShell の言語モードが FullLanguage でない環境では、英語の 1 行を出して終了します。エラーの表示にファイル名は出ません(行番号はファイルの行と同じです)。
  • 配布物の改ざんの確認は、zip 版の tebunko.cat ではなく、SHA256SUMS.txt で行います。

検索対象外の内容

  • 画像内の文字(スキャンした文書の画像など)
  • 埋め込みオブジェクトのうち、Word・PowerPoint に埋め込んだ Office のファイル(Excel のブック・Word 文書・PowerPoint)以外の文字(画像・PDF など)。Excel に埋め込んだ別ファイルの文字。Office のファイルの中にさらに埋め込んだものの文字
  • Excel の非表示シート・新しい種類のグラフ(じょうご・ツリーマップ・滝など)の文字
  • PowerPoint のスライドマスターの文字

Excel・Word・PowerPoint の図形・SmartArt・グラフの文字は、[図形]が有効な場合に検索対象となります(グラフはタイトル・軸ラベル・系列名だけが対象で、項目名〈横軸に並ぶ文字〉と数値は検索できません)。

更新できないファイル

  • 読み取りパスワードが設定されたファイル(パスワードを解除したコピーであれば更新できます)
  • IRM(情報権利管理)・秘密度ラベルによって暗号化されたファイル(保護を解除したコピーであれば更新できます)
  • 1 ファイルの更新に 10 分以上を要するファイル(サイズが極端に大きい、開く際にダイアログが表示される、など)
  • 破損したファイル、または拡張子と内容の形式が一致しないファイル
  • 10MB を超えるテキストファイル
  • 展開すると極端に大きくなるファイル(.xlsx .docx .pptx の中身の 1 つが展開後 100MB を超える、または 1 ファイルで読む中身の合計が 300MB を超えるもの。Excel のシートは、1 ファイルのシートを読んだ合計が展開後 1000MB を超えると、それより後のシートのヘッダー・フッターを読みません。細工したファイルによる攻撃を防ぐための上限。Excel の図形・コメントは、1 つのグラフ・SmartArt だけが超えた場合はそこだけを空にして取り込みを続けます)
  • 文字コードを判定できないテキストファイル(バイナリファイルと見分けが付かないもの。下の「テキストファイル」)
  • 読めない PDF(開くのにパスワードが要るもの、対応していない暗号化の方式(RC4 40・128 ビット、AES-128)のもの、壊れたもの、100MB を超えるもの。下の「PDF ファイル」)
  • 透過型のファイル暗号化製品(社内の情報漏えい対策製品など)で暗号化されたファイルのうち、Office がその製品に許可されたアプリでないもの。許可されている場合は更新できます

更新できなかったファイルは、[インデックス管理]の「更新に失敗したファイル」に原因とともに表示されます(トラブルシューティング)。

PDF ファイル

.pdf のページごとの文字を検索できます。場所は「ページ N」で表示します。外の部品は使わず、tebunko 自身が読みます。

  • 文字を持つ PDF だけ: 画像だけの PDF(スキャンしたもの)は、文字が無いので検索できません(更新できなかったファイルにはならず、文字が 0 件の PDF として扱います)。
  • 読めない PDF: 開くのにパスワードが要るもの、対応していない暗号化の方式(RC4 40・128 ビット、AES-128)のもの、壊れているもの、読み方が対応していない圧縮を使うもの、文字の対応表を持たない一部のフォントの文字は、更新できなかったファイルとして原因とともに表示されます。
  • 上限: 1 ファイルが 100MB を超えるものと、展開後が極端に大きくなるものは読みません。
  • 文字の並び: 段組みや表は、位置ではなくファイルに書かれた順に並びます。行の分かれ方が見た目と違うことがあります。語ごとに位置を決めて並べる PDF では、1 文字だけの短い語(a など)の後ろの空白が消えて前後の語がつながることと、幅の広い文字(@ など)の後ろに空白が入ることがあります。拡大の指定(cm)で位置を決める PDF は、行が分かれず 1 行になることがあります。
  • ページへの移動をしない: 検索結果から開くと、既定のアプリで PDF を開きます。該当のページへは移動しません。

テキストファイル

対応するテキストの拡張子

文字コードを適切に選べれば読める、次の 75 個の拡張子が対象です(大文字・小文字を区別しない)。設定で対象の拡張子を増やすことはできません。

  • .txt .csv .tsv .md .log .json .xml
  • ソースコード: .c .h .cpp .cc .cxx .hpp .cs .java .kt .kts .go .rs .swift .scala .dart .vb .bas .pas .asm .m .r .jl .hs .ex .exs .erl .clj .groovy .jsx .tsx .vue
  • 設定・マークアップ・その他: .sql .yaml .yml .toml .ini .cfg .conf .properties .gradle .cmake .proto .graphql .tf .html .htm .css .scss .less .rst .tex .diff .patch
  • 開くと実行・登録になるため、[開く]を押すと既定のアプリではなくメモ帳で開くもの(ファイルを開く): .bat .cmd .ps1 .vbs .js .reg .sh .py .rb .pl .php .lua .mjs .psm1 .psd1

.exe .com .scr .hta .wsf .wsh .jse .vbe .lnk .url .msi .cpl .inf(実行・登録に使われるファイル)・.ts・.pdf など、上に無い拡張子は対象外です。

文字コードは BOM・UTF-8・Shift_JIS・EUC-JP・ISO-2022-JP(JIS)・BOM の無い UTF-16 を自動で判定します。

  • 文字コードの判定の限界: 対象の言語は日本語と英語です(GBK・Big5・EUC-KR は対象外)。判定できないもの・あいまいなものは、化けたまま検索対象にしないよう「文字コードを判定できないテキストファイル」として更新の対象にしません(UTF-32・GBK・Big5・EUC-KR・かなの無い EUC-JP・Shift_JIS の外字(F040〜)を含むもの・バイナリなど)。UTF-8・Shift_JIS・UTF-16 で保存し直すと更新できます。GBK・Big5・EUC-KR の 20 文字前後までの短い文字列は、半角カナの Shift_JIS と見分けが付かず、化けたまま読み込まれることがあります。Shift_JIS の短い文字列(半角カナの一部など)が、たまたま UTF-8 として正しく読めることがあり、その場合は文字化けします。UTF-16・BOM 付き UTF-8 と判定したもの以外は、ファイルのどこかに NUL(0x00)が 1 つでもあれば、バイナリとして更新の対象にしません。
  • 末尾が NUL で埋まった大きいファイル: アプリの強制終了などでファイルの途中から NUL(0x00)で埋まったまま残った .log などは、先頭 64KB を超えた位置に NUL があっても更新の対象にしません(UTF-16・BOM 付き UTF-8 と判定したものを除く)。
  • node_modules やビルドの出力を含むフォルダ: 対象の拡張子が広がったため、これらのフォルダをクロール対象に含めると、更新する件数・インデックス作成にかかる時間・インデックスの大きさが増えます。
  • 長い行: 1 行が 1,000 文字を超えるとき、検索結果の該当行とプレビューの前後の行は 1,000 文字に切って表示します(.json .xml .log などで、1 行に数 MB の内容が入っている場合に、画面の描画が固まるのを防ぐため)。インデックス作成・検索の一致そのものは行を切らずに行うため、ヒットするかどうかや行番号は変わりません。切った行は、検索結果ファイルへの出力・コピーでも同じように切られます。まれに、切った位置がサロゲートペア(絵文字など、2 文字分で 1 文字を表す並び)の途中に当たり、その 1 文字が欠けて見えることがあります。
  • 書き込み中のログファイル: ファイルが更新されるたびに内容全体を読み直します(差分だけを読む仕組みはありません)。頻繁に追記される .log ファイルがあると、インデックス作成のたびに読み込みが発生します。
  • 行への移動をしない: テキストファイルを開くと、既定のアプリ(.bat 等は固定のパスのメモ帳)でファイル全体を開きます(ファイルを開く)。該当の行へは移動しません。

検索

  • 1 回の検索で指定できる検索ワードは 1 つ(1 つの文字列)です。複数語の AND・OR 検索には対応していません([正規表現]を有効にすれば OR 条件を記述できます)。
  • 表示できる検索結果は 10,000 件までです(設定の画面で、1,000〜100,000 件か制限なしに変えられます。設定)。
  • Excel の図形・コメントは、セル番地では探せません(文字の部分だけが検索の対象です)。また、正規表現の行頭 ^ は、図形・コメントの文字の先頭には一致しません。
  • 正規表現による検索で、1 行の照合に 5 秒以上を要する場合は、その照合を打ち切ります。

Excel の数値

Excel のセルは、画面上の表示形式で検索します。

  • 表示形式により 1,234 と表示されているセルは 1,234 で検索でき、1234 では検索できません。
  • 表示形式が「標準」で 12 桁以上の数値は指数表記(4.90123E+12)となるため、元の数値では検索できません。番号などは文字列として入力するか、表示形式を「数値」に設定してください。

Word のページ番号

Word の検索結果に表示するページ番号は目安です。インデックス作成時のページ区切りに基づくため、プリンターや表示の設定により、実際のページと異なる場合があります。

検索結果への反映

元のファイルの変更は、次回のインデックス作成後に検索結果へ反映されます。それまでは、前回更新した時点の内容で検索します。