mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-09-09 03:07:59 +00:00
43 lines
1.8 KiB
Python
43 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
from whoosh_compat import FieldKind
|
|
from whoosh_compat import FieldSpec
|
|
from whoosh_compat import SubpathSpec
|
|
|
|
# Internal-only schema fields with no query-syntax meaning of their own
|
|
# (sort shadow fields, bigram CJK fields, simple_title/simple_content,
|
|
# autocomplete_word, notes_text) are NOT represented here, they are
|
|
# declared in _schema.py's field_descriptors().
|
|
#
|
|
# analyzer/pattern_normalizer are deliberately left at FieldSpec's default
|
|
# (None): they're language-specific and only meaningful to whoosh-compat's
|
|
# parser, so _registry.py attaches them per-language via dataclasses.replace()
|
|
# rather than PUBLIC_FIELDS declaring them itself. _schema.py only reads
|
|
# name/kind/fast and never sees the analyzer at all.
|
|
PUBLIC_FIELDS: tuple[FieldSpec, ...] = (
|
|
FieldSpec("title", FieldKind.TEXT),
|
|
FieldSpec("content", FieldKind.TEXT),
|
|
FieldSpec("correspondent", FieldKind.TEXT),
|
|
FieldSpec("document_type", FieldKind.TEXT, aliases=("type",)),
|
|
FieldSpec("storage_path", FieldKind.TEXT, aliases=("path",)),
|
|
FieldSpec("original_filename", FieldKind.TEXT),
|
|
FieldSpec("tag", FieldKind.TEXT, comma_values=True),
|
|
FieldSpec("checksum", FieldKind.KEYWORD),
|
|
FieldSpec("asn", FieldKind.U64, fast=True),
|
|
FieldSpec("page_count", FieldKind.U64, fast=True),
|
|
FieldSpec("num_notes", FieldKind.U64, fast=True),
|
|
FieldSpec("created", FieldKind.DATE, date_only=True, fast=True),
|
|
FieldSpec("modified", FieldKind.DATETIME, fast=True),
|
|
FieldSpec("added", FieldKind.DATETIME, fast=True),
|
|
FieldSpec(
|
|
"notes",
|
|
FieldKind.JSON,
|
|
subpaths={"user": SubpathSpec(), "note": SubpathSpec(default=True)},
|
|
),
|
|
FieldSpec(
|
|
"custom_fields",
|
|
FieldKind.JSON,
|
|
subpaths={"name": SubpathSpec(), "value": SubpathSpec(default=True)},
|
|
),
|
|
)
|