データベース仕様#
このページは生成されるデータベースの仕様について説明しています。
基本#
SQLiteのFTS5拡張を使用しています。詳細については`SQLiteのサイト <https://www.sqlite.org/fts5.html>`_ を参照して下さい。
sphinx-sqlite3fts は次の考え方で利用しています。
日本語ドキュメントの検索を前提としており、
trigramトークナイザーを使用する。ドキュメントの基本情報とコンテンツ情報を分割してテーブル管理する。(ドキュメントにはページ名の情報があるが、これは検索対象にする必要がないため)
テーブル校正#
sphinx-sqlite3fts はデータベースのスキーマ管理にpeeweeを採用しています。
documentテーブル#
ドキュメントごとに管理するべきデータを保存。(pageなど)
sectionテーブル#
ページ内のセクションIDのような、セクション単位で保持されているデータを保持。
contentテーブル#
全文検索の対象となるデータを保持。現在はドキュメントのタイトルと本文をセクション単位で管理。
body (本文)はdoctreeからプレーンテキスト部分を抽出したもののみを保持。
リレーション#
section.document_idis as foreign key todocument.id.document-fts.rowidis as foreign key tosection.id.
You can use JOIN statement some tables.