feat: allow fuzz search on tags

This commit is contained in:
Paul Pan 2023-12-27 21:56:19 +08:00
parent ce7d173a82
commit e508c6f4e8
Signed by: Paul
GPG Key ID: D639BDF5BA578AF4

View File

@ -23,12 +23,12 @@ func (s *service) QueryFuzz(keyword string, tag string, associations bool, shoul
Or("statement LIKE ?", "%"+keyword+"%")) Or("statement LIKE ?", "%"+keyword+"%"))
if tag != "" { if tag != "" {
query = query.Where("tags @> array[?]", tag) query = query.Where("EXISTS(SELECT 1 FROM unnest(tags) AS elem WHERE elem LIKE ?)", "%"+tag+"%")
} }
err := query.Find(&problems).Error err := query.Find(&problems).Error
if err != nil { if err != nil {
s.log.Warn("DatabaseError", zap.Error(err), zap.Any("keyword", keyword)) s.log.Warn("DatabaseError", zap.Error(err), zap.Any("keyword", keyword), zap.Any("tag", tag))
return nil, e.DatabaseError return nil, e.DatabaseError
} }