🎨 Marketplace search for multiple keywords uses AND logic https://github.com/siyuan-note/siyuan/issues/14293

This commit is contained in:
Daniel 2025-03-07 22:40:22 +08:00
parent 09e52d3c54
commit bc1c2ef5c5
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -501,7 +501,7 @@ func matchPackage(keywords []string, pkg *bazaar.Package) bool {
return false
}
hitCount := 0
hits := map[string]bool{}
for _, keyword := range keywords {
if strings.Contains(strings.ToLower(pkg.DisplayName.Default), keyword) ||
strings.Contains(strings.ToLower(pkg.DisplayName.ZhCN), keyword) ||
@ -513,16 +513,18 @@ func matchPackage(keywords []string, pkg *bazaar.Package) bool {
strings.Contains(strings.ToLower(pkg.Description.EnUS), keyword) ||
strings.Contains(strings.ToLower(path.Base(pkg.RepoURL)), keyword) ||
strings.Contains(strings.ToLower(pkg.Author), keyword) {
hitCount++
hits[keyword] = true
continue
}
for _, pkgKeyword := range pkg.Keywords {
if strings.Contains(strings.ToLower(pkgKeyword), keyword) {
hitCount++
hits[keyword] = true
break
}
}
}
return hitCount == len(keywords)
return len(hits) == len(keywords)
}
func getSearchKeywords(query string) (ret []string) {