2023-03-06 18:32:13 +01:00
|
|
|
# Index Journal
|
|
|
|
|
|
|
|
The index journal contains a list of entries with keywords and keyword metadata per document.
|
|
|
|
|
2023-03-13 17:39:53 +01:00
|
|
|
This journal is written by [processes/loading-process](../../processes/loading-process) and read
|
2023-03-06 18:32:13 +01:00
|
|
|
when constructing the [forward](../index-forward) and [reverse](../index-reverse)
|
|
|
|
indices.
|
|
|
|
|
2024-02-15 10:51:49 +01:00
|
|
|
The journal format is a file header, followed by a zstd-compressed list of entries,
|
|
|
|
each containing a header with document-level data, and a data section
|
|
|
|
with keyword-level data.
|
|
|
|
|
|
|
|
The journal data may be split into multiple files, and the journal writers and readers
|
|
|
|
are designed to handle this transparently via their *Paging* implementation.
|
|
|
|
|
2023-03-06 18:32:13 +01:00
|
|
|
## Central Classes
|
|
|
|
|
|
|
|
### Model
|
2024-02-15 10:51:49 +01:00
|
|
|
* [IndexJournalEntry](src/main/java/nu/marginalia/index/journal/model/IndexJournalEntry.java)
|
|
|
|
* [IndexJournalEntryHeader](src/main/java/nu/marginalia/index/journal/model/IndexJournalEntryHeader.java)
|
|
|
|
* [IndexJournalEntryData](src/main/java/nu/marginalia/index/journal/model/IndexJournalEntryData.java)
|
2023-03-06 18:32:13 +01:00
|
|
|
### I/O
|
2024-02-15 10:51:49 +01:00
|
|
|
* [IndexJournalReader](src/main/java/nu/marginalia/index/journal/reader/IndexJournalReader.java)
|
|
|
|
* [IndexJournalWriter](src/main/java/nu/marginalia/index/journal/writer/IndexJournalWriter.java)
|