Template
1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo synced 2024-11-29 13:16:10 +01:00

Change repo search to use exact match for topic search. (#7941)

Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
This commit is contained in:
David Svantesson 2019-08-23 04:37:35 +02:00 committed by techknowlogick
parent 4ea9a377db
commit ca6fb004ac

View file

@ -248,8 +248,12 @@ func SearchRepositoryByName(opts *SearchRepoOptions) (RepositoryList, int64, err
// separate keyword // separate keyword
var subQueryCond = builder.NewCond() var subQueryCond = builder.NewCond()
for _, v := range strings.Split(opts.Keyword, ",") { for _, v := range strings.Split(opts.Keyword, ",") {
if opts.TopicOnly {
subQueryCond = subQueryCond.Or(builder.Eq{"topic.name": strings.ToLower(v)})
} else {
subQueryCond = subQueryCond.Or(builder.Like{"topic.name", strings.ToLower(v)}) subQueryCond = subQueryCond.Or(builder.Like{"topic.name", strings.ToLower(v)})
} }
}
subQuery := builder.Select("repo_topic.repo_id").From("repo_topic"). subQuery := builder.Select("repo_topic.repo_id").From("repo_topic").
Join("INNER", "topic", "topic.id = repo_topic.topic_id"). Join("INNER", "topic", "topic.id = repo_topic.topic_id").
Where(subQueryCond). Where(subQueryCond).