code.gitea.io/gitea@v1.22.3/modules/indexer/internal/meilisearch/util.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package meilisearch 5 6 import ( 7 "fmt" 8 9 "code.gitea.io/gitea/modules/log" 10 ) 11 12 // VersionedIndexName returns the full index name with version 13 func (i *Indexer) VersionedIndexName() string { 14 return versionedIndexName(i.indexName, i.version) 15 } 16 17 func versionedIndexName(indexName string, version int) string { 18 if version == 0 { 19 // Old index name without version 20 return indexName 21 } 22 23 // The format of the index name is <index_name>_v<version>, not <index_name>.v<version> like elasticsearch. 24 // Because meilisearch does not support "." in index name, it should contain only alphanumeric characters, hyphens (-) and underscores (_). 25 // See https://www.meilisearch.com/docs/learn/core_concepts/indexes#index-uid 26 27 return fmt.Sprintf("%s_v%d", indexName, version) 28 } 29 30 func (i *Indexer) checkOldIndexes() { 31 for v := 0; v < i.version; v++ { 32 indexName := versionedIndexName(i.indexName, v) 33 _, err := i.Client.GetIndex(indexName) 34 if err == nil { 35 log.Warn("Found older meilisearch index named %q, Gitea will keep the old NOT DELETED. You can delete the old version after the upgrade succeed.", indexName) 36 } 37 } 38 }