データベース仕様#

このページは生成されるデータベースの仕様について説明しています。

基本#

SQLiteのFTS5拡張を使用しています。詳細については`SQLiteのサイト <https://www.sqlite.org/fts5.html>`_ を参照して下さい。

sphinx-sqlite3fts は次の考え方で利用しています。

  • 日本語ドキュメントの検索を前提としており、 trigram トークナイザーを使用する。

  • ドキュメントの基本情報とコンテンツ情報を分割してテーブル管理する。(ドキュメントにはページ名の情報があるが、これは検索対象にする必要がないため)

テーブル校正#

sphinx-sqlite3fts はデータベースのスキーマ管理にpeeweeを採用しています。

documentテーブル#

ドキュメントごとに管理するべきデータを保存。(pageなど)

sectionテーブル#

ページ内のセクションIDのような、セクション単位で保持されているデータを保持。

contentテーブル#

全文検索の対象となるデータを保持。現在はドキュメントのタイトルと本文をセクション単位で管理。

body (本文)はdoctreeからプレーンテキスト部分を抽出したもののみを保持。

リレーション#

  • section.document_id is as foreign key to document.id.

  • document-fts.rowid is as foreign key to section.id.

You can use JOIN statement some tables.