ft5 table creation

This commit is contained in:
Simon Martens
2025-02-16 03:05:44 +01:00
parent 2d9e27ac8e
commit ca1c7272b6
4 changed files with 174 additions and 1 deletions

View File

@@ -4,6 +4,84 @@ import "github.com/pocketbase/pocketbase/tools/types"
var EDITORSTATE_VALUES = []string{"Unknown", "ToDo", "Seen", "Partially Edited", "Waiting", "Review", "Edited"}
var SERIES_FTS5_FIELDS = []string{
SERIES_TITLE_FIELD,
SERIES_PSEUDONYMS_FIELD,
ANNOTATION_FIELD,
COMMENT_FIELD,
}
var AGENTS_FTS5_FIELDS = []string{
AGENTS_NAME_FIELD,
AGENTS_BIOGRAPHICAL_DATA_FIELD,
AGENTS_PSEUDONYMS_FIELD,
ANNOTATION_FIELD,
COMMENT_FIELD,
}
var PLACES_FTS5_FIELDS = []string{
PLACES_NAME_FIELD,
PLACES_PSEUDONYMS_FIELD,
URI_FIELD,
ANNOTATION_FIELD,
COMMENT_FIELD,
}
var ITEMS_FTS5_FIELDS = []string{
ITEMS_LOCATION_FIELD,
ITEMS_OWNER_FIELD,
ITEMS_MEDIA_FIELD,
ITEMS_CONDITION_FIELD,
ITEMS_IDENTIFIER_FIELD,
URI_FIELD,
ANNOTATION_FIELD,
COMMENT_FIELD,
}
var ENTRIES_FTS5_FIELDS = []string{
PREFERRED_TITLE_FIELD,
VARIANT_TITLE_FIELD,
PARALLEL_TITLE_FIELD,
TITLE_STMT_FIELD,
SUBTITLE_STMT_FIELD,
INCIPIT_STMT_FIELD,
RESPONSIBILITY_STMT_FIELD,
PUBLICATION_STMT_FIELD,
PLACE_STMT_FIELD,
EDITION_FIELD,
YEAR_FIELD,
EXTENT_FIELD,
DIMENSIONS_FIELD,
REFERENCES_FIELD,
PLACES_TABLE,
AGENTS_TABLE,
SERIES_TABLE,
MUSENALMID_FIELD,
ANNOTATION_FIELD,
COMMENT_FIELD,
}
var CONTENTS_FTS5_FIELDS = []string{
PREFERRED_TITLE_FIELD,
VARIANT_TITLE_FIELD,
PARALLEL_TITLE_FIELD,
TITLE_STMT_FIELD,
SUBTITLE_STMT_FIELD,
INCIPIT_STMT_FIELD,
RESPONSIBILITY_STMT_FIELD,
PUBLICATION_STMT_FIELD,
PLACE_STMT_FIELD,
YEAR_FIELD,
EXTENT_FIELD,
DIMENSIONS_FIELD,
NUMBERING_FIELD,
ENTRIES_TABLE,
AGENTS_TABLE,
MUSENALMID_FIELD,
ANNOTATION_FIELD,
COMMENT_FIELD,
}
var ITEM_TYPE_VALUES = []string{
"Original",
"Reproduktion",
@@ -416,6 +494,8 @@ var PUBLIC_VIEW_RULE = types.Pointer("")
var PUBLIC_LIST_RULE = types.Pointer("")
const (
FTS5_PREFIX = "fts5_"
PLACES_TABLE = "places"
AGENTS_TABLE = "agents"
SERIES_TABLE = "series"

View File

@@ -97,3 +97,19 @@ func GetFields(records []*core.Record, field string) []any {
}
return fields
}
func CreateFTS5TableQuery(tablename string, fields ...string) string {
if len(fields) == 0 {
return ""
}
str := "CREATE VIRTUAL TABLE IF NOT EXISTS " + FTS5_PREFIX + tablename + " USING fts5(id, "
for i, f := range fields {
str += f
if i < len(fields)-1 {
str += ", "
}
}
str += ")"
return str
}