Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AutoMigrate ¶
AutoMigrate performs the automatic migration of all GORM models.
Types ¶
type Document ¶
type Document struct {
Model
// A Namespace has many Documents.
NamespaceID uint `gorm:"not null;index"`
// A Document has many Texts.
Texts []Text `gorm:"constraint:OnDelete:CASCADE"`
// A Document has many Tags.
Tags []Tag `gorm:"constraint:OnDelete:CASCADE"`
}
A Document from a namespace.
type Model ¶
type Model struct {
ID uint `gorm:"primaryKey"`
CreatedAt time.Time `gorm:"not null;default:now()"`
UpdatedAt time.Time `gorm:"not null;default:now()"`
}
Model is the basic struct embedded into all GORM models.
type Namespace ¶
type Namespace struct {
Model
Name string `gorm:"not null;uniqueIndex"`
// A Namespace has many Documents.
Documents []Document `gorm:"constraint:OnDelete:CASCADE"`
}
A Namespace groups a set of Documents.
type Tag ¶
type Tag struct {
Model
// A Document has many Tags.
DocumentID uint `gorm:"not null;index"`
Value string `gorm:"not null;index"`
}
A Tag is a simple label associated to a Document.
type Term ¶
type Term struct {
Model
// A Text has many Terms.
TextID uint `gorm:"not null;index"`
// Value is the textual value of the term, which is a text token
// such as a lemma, a single or compound word, etc.
Value string `gorm:"not null;index"`
// PositionInText allows the Term to be optionally associated to a
// portion of Text. It is useful for highlighting.
// The range represents the indices/positions of unicode code points
// (runes) from the associated Text.
PositionInText pgtype.Int8range `gorm:"type:int8range;null"`
// Highlightable indicates whether this Term can be used as a candidate
// for search results' highlighting.
// It is ignored if PositionInText is null or an empty range.
Highlightable bool `gorm:"not null;index"`
}
A Term from a text.
type Text ¶
type Text struct {
Model
// A Document has many Texts.
DocumentID uint `gorm:"not null;index;uniqueIndex:idx_unique_text_index_per_document"`
Index int `gorm:"not null;index;uniqueIndex:idx_unique_text_index_per_document"`
Value string `gorm:"not null"`
// A Text has many Terms.
Terms []Term `gorm:"constraint:OnDelete:CASCADE"`
}
A Text is a portion of a Document.
Click to show internal directories.
Click to hide internal directories.