From d265b5d31edc1aec6f67e790b351a96e41938f03 Mon Sep 17 00:00:00 2001 From: Ingo Date: Mon, 11 Dec 2023 08:09:53 +0100 Subject: [PATCH] trim leading and trailing whitespaces from search strings --- lib/query/query.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/query/query.go b/lib/query/query.go index 0ce8710..67b0644 100644 --- a/lib/query/query.go +++ b/lib/query/query.go @@ -821,26 +821,27 @@ func (this *Query) selectByField(kind string, field string, value string, user s } func (this *Query) getFeatureSearchInfo(query string) (operator string, config map[string]interface{}) { - if strings.Contains(query, "*") { + search := strings.TrimSpace(query) + if strings.Contains(search, "*") { return "wildcard", map[string]interface{}{ - "feature_search": map[string]interface{}{"case_insensitive": true, "value": query}, + "feature_search": map[string]interface{}{"case_insensitive": true, "value": search}, } } - if !this.config.EnableCombinedWildcardFeatureSearch || strings.ContainsAny(query, " -/_:,;([{&%$") { + if !this.config.EnableCombinedWildcardFeatureSearch || strings.ContainsAny(search, " -/_:,;([{&%$") { return "match", map[string]interface{}{ - "feature_search": map[string]interface{}{"operator": "AND", "query": query}, + "feature_search": map[string]interface{}{"operator": "AND", "query": search}, } } return "bool", map[string]interface{}{ "should": []map[string]interface{}{ { "wildcard": map[string]interface{}{ - "feature_search": map[string]interface{}{"case_insensitive": true, "value": "*" + query + "*"}, + "feature_search": map[string]interface{}{"case_insensitive": true, "value": "*" + search + "*"}, }, }, { "match": map[string]interface{}{ - "feature_search": map[string]interface{}{"operator": "AND", "query": query}, + "feature_search": map[string]interface{}{"operator": "AND", "query": search}, }, }, },