summaryrefslogtreecommitdiffstats
path: root/modules/setting/indexer.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-02-19 22:39:39 +0800
committertechknowlogick <matti@mdranta.net>2019-02-19 09:39:39 -0500
commit830ae614560b0c504c00d693b63d9889bac1a2d8 (patch)
tree5fd933f8124f4dd30d0215def2a7bcc0181573be /modules/setting/indexer.go
parent094263db4d9f1b53c4b4c021005eec07baddd253 (diff)
downloadgitea-830ae614560b0c504c00d693b63d9889bac1a2d8.tar.gz
gitea-830ae614560b0c504c00d693b63d9889bac1a2d8.zip
Refactor issue indexer (#5363)
Diffstat (limited to 'modules/setting/indexer.go')
-rw-r--r--modules/setting/indexer.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/modules/setting/indexer.go b/modules/setting/indexer.go
new file mode 100644
index 0000000000..245ebb0496
--- /dev/null
+++ b/modules/setting/indexer.go
@@ -0,0 +1,55 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package setting
+
+import (
+ "path"
+ "path/filepath"
+)
+
+// enumerates all the indexer queue types
+const (
+ LevelQueueType = "levelqueue"
+ ChannelQueueType = "channel"
+)
+
+var (
+ // Indexer settings
+ Indexer = struct {
+ IssueType string
+ IssuePath string
+ RepoIndexerEnabled bool
+ RepoPath string
+ UpdateQueueLength int
+ MaxIndexerFileSize int64
+ IssueIndexerQueueType string
+ IssueIndexerQueueDir string
+ IssueIndexerQueueBatchNumber int
+ }{
+ IssueType: "bleve",
+ IssuePath: "indexers/issues.bleve",
+ IssueIndexerQueueType: LevelQueueType,
+ IssueIndexerQueueDir: "indexers/issues.queue",
+ IssueIndexerQueueBatchNumber: 20,
+ }
+)
+
+func newIndexerService() {
+ sec := Cfg.Section("indexer")
+ Indexer.IssuePath = sec.Key("ISSUE_INDEXER_PATH").MustString(path.Join(AppDataPath, "indexers/issues.bleve"))
+ if !filepath.IsAbs(Indexer.IssuePath) {
+ Indexer.IssuePath = path.Join(AppWorkPath, Indexer.IssuePath)
+ }
+ Indexer.RepoIndexerEnabled = sec.Key("REPO_INDEXER_ENABLED").MustBool(false)
+ Indexer.RepoPath = sec.Key("REPO_INDEXER_PATH").MustString(path.Join(AppDataPath, "indexers/repos.bleve"))
+ if !filepath.IsAbs(Indexer.RepoPath) {
+ Indexer.RepoPath = path.Join(AppWorkPath, Indexer.RepoPath)
+ }
+ Indexer.UpdateQueueLength = sec.Key("UPDATE_BUFFER_LEN").MustInt(20)
+ Indexer.MaxIndexerFileSize = sec.Key("MAX_FILE_SIZE").MustInt64(1024 * 1024)
+ Indexer.IssueIndexerQueueType = sec.Key("ISSUE_INDEXER_QUEUE_TYPE").MustString(LevelQueueType)
+ Indexer.IssueIndexerQueueDir = sec.Key("ISSUE_INDEXER_QUEUE_DIR").MustString(path.Join(AppDataPath, "indexers/issues.queue"))
+ Indexer.IssueIndexerQueueBatchNumber = sec.Key("ISSUE_INDEXER_QUEUE_BATCH_NUMBER").MustInt(20)
+}