MM-24530-Add support for search terms with underscore using postgresql engine (#16618)
* add support for search terms with underscore using postgresql * fix failing tests Initially issue fix applied to all search terms instead of the ones that contains _ * direct cast tsquery * fix test issues * refactor underscored quoted term search * support search term case-insensitive Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
3da6f270ec
Коммит
ba3b788e46
@@ -1481,7 +1481,16 @@ func (s *SqlPostStore) search(teamId string, userId string, params *model.Search
|
||||
queryParams["Terms"] = "(" + strings.Join(strings.Fields(terms), " & ") + ")" + excludeClause
|
||||
}
|
||||
|
||||
searchClause := fmt.Sprintf("AND to_tsvector('english', %s) @@ to_tsquery('english', :Terms)", searchType)
|
||||
searchClause := ""
|
||||
if strings.Contains(terms, "_") {
|
||||
//Strip quotes off terms with it
|
||||
if strings.Contains(terms, "\"") {
|
||||
queryParams["Terms"] = strings.ReplaceAll(queryParams["Terms"].(string), "\"", "")
|
||||
}
|
||||
searchClause = fmt.Sprintf("AND lower(%s)::tsvector @@ lower(:Terms)::tsquery", searchType)
|
||||
} else {
|
||||
searchClause = fmt.Sprintf("AND to_tsvector('english', %s) @@ to_tsquery('english', :Terms)", searchType)
|
||||
}
|
||||
searchQuery = strings.Replace(searchQuery, "SEARCH_CLAUSE", searchClause, 1)
|
||||
} else if s.DriverName() == model.DATABASE_DRIVER_MYSQL {
|
||||
if searchType == "Message" {
|
||||
|
||||
Ссылка в новой задаче
Block a user