mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Improve issue & code search (#33860)
Each "indexer" should provide the "search modes" they support by themselves. And we need to remove the "fuzzy" search for code.
This commit is contained in:
@@ -4,36 +4,30 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"code.gitea.io/gitea/modules/indexer"
|
||||
code_indexer "code.gitea.io/gitea/modules/indexer/code"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/services/context"
|
||||
)
|
||||
|
||||
func PrepareCodeSearch(ctx *context.Context) (ret struct {
|
||||
Keyword string
|
||||
Language string
|
||||
IsFuzzy bool
|
||||
Keyword string
|
||||
Language string
|
||||
SearchMode indexer.SearchModeType
|
||||
},
|
||||
) {
|
||||
ret.Language = ctx.FormTrim("l")
|
||||
ret.Keyword = ctx.FormTrim("q")
|
||||
ret.SearchMode = indexer.SearchModeType(ctx.FormTrim("search_mode"))
|
||||
|
||||
fuzzyDefault := setting.Indexer.RepoIndexerEnabled
|
||||
fuzzyAllow := true
|
||||
if setting.Indexer.RepoType == "bleve" && setting.Indexer.TypeBleveMaxFuzzniess == 0 {
|
||||
fuzzyDefault = false
|
||||
fuzzyAllow = false
|
||||
}
|
||||
isFuzzy := ctx.FormOptionalBool("fuzzy").ValueOrDefault(fuzzyDefault)
|
||||
if isFuzzy && !fuzzyAllow {
|
||||
ctx.Flash.Info("Fuzzy search is disabled by default due to performance reasons", true)
|
||||
isFuzzy = false
|
||||
}
|
||||
|
||||
ctx.Data["IsBleveFuzzyDisabled"] = true
|
||||
ctx.Data["Keyword"] = ret.Keyword
|
||||
ctx.Data["Language"] = ret.Language
|
||||
ctx.Data["IsFuzzy"] = isFuzzy
|
||||
|
||||
ctx.Data["SelectedSearchMode"] = string(ret.SearchMode)
|
||||
if setting.Indexer.RepoIndexerEnabled {
|
||||
ctx.Data["SearchModes"] = code_indexer.SupportedSearchModes()
|
||||
} else {
|
||||
ctx.Data["SearchModes"] = indexer.GitGrepSupportedSearchModes()
|
||||
}
|
||||
ctx.Data["IsRepoIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled
|
||||
return ret
|
||||
}
|
||||
|
Reference in New Issue
Block a user