v0.6.0

支援的檔案格式

最後更新


watcher 會索引哪些檔案、略過哪些檔案,以及各格式如何切成可搜尋的 chunk(切塊)。

依副檔名分派


副檔名以小寫比對(internal/filesystem/walkFiles.go)。
副檔名Parser切塊單位紀錄的 kind
.pdfpdftotext -layout -enc UTF-8,移除換頁字元段落pdf
.docx本文,接著頁首、頁尾、註腳、章節附註段落docx
.pptx投影片 XML 文字,依投影片編號排序每張非空白投影片一個 chunkpptx
.csv、.tsvCSV reader(.tsv 以 tab 分隔),去除 UTF-8 BOM32 列資料csv
.xlsx僅第一個工作表32 列資料xlsx
其他副檔名通過文字檢查時當純文字讀取段落text

段落切塊


PDF、DOCX 與純文字檔的內容以空白行切分;只含空格或 tab 的行也視為空白行。每個段落去除前後空白、捨棄空段落,其餘段落從 1 開始編號,並一併記錄總數。段落內的行保留原本的換行。
  1. Alpha Go notes
  2. line two
  3. Second paragraph about SQLite

這份檔案產生兩個 chunk:chunk 1 是前兩行並保留其間的換行,chunk 2 是最後一行。

表格切塊


CSV、TSV 與 XLSX 以第一列為表頭。資料列每 32 列組成一個 chunk,每列獨立一行,格式為 [列號] 表頭=值, ...,列號從 1 起算:
  1. [1] name=ann, role=dev
  2. [2] name=bob, role=ops

情況行為
表頭儲存格為空鍵名改為 col<N>
資料列儲存格多於表頭多出的儲存格捨棄
只有表頭列,或檔案為空不產生 chunk;該檔先前的資料列會被 dismiss
CSV 或 TSV 大於 1 MiBParser 錯誤,檔案不會被儲存

略過的檔案


規則範例
排除的檔名.DS_Store
二進位副檔名圖片(.png、.jpg、.heic、.svg)、影片(.mp4、.mov)、音訊(.mp3、.wav)、壓縮檔(.zip、.tar、.gz)、執行檔與函式庫(.exe、.so、.dylib)、安裝檔(.dmg、.deb)、bytecode(.class、.jar、.pyc、.wasm)、資料庫(.db、.sqlite)、設計檔(.psd、.fig)、字型(.ttf、.woff2)
未通過文字檢查前 8 KiB 含 NUL 位元組或不是合法 UTF-8,或檔案為空

略過的檔案仍會記進快照,在檔案變動前不會重新檢查。

相關頁面


EN