store/post: fix searching for phrases in postgres (#17042)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
33e319366c
Коммит
35cfab33fc
@@ -345,6 +345,11 @@ func testSearchExactPhraseInQuotes(t *testing.T, th *SearchTestHelper) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = th.createPost(th.User.Id, th.ChannelBasic.Id, "channel test 123", "", model.POST_DEFAULT, 0, false)
|
_, err = th.createPost(th.User.Id, th.ChannelBasic.Id, "channel test 123", "", model.POST_DEFAULT, 0, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
_, err = th.createPost(th.User.Id, th.ChannelBasic.Id, "channel something test 1 2 3", "", model.POST_DEFAULT, 0, false)
|
||||||
|
require.NoError(t, err)
|
||||||
|
_, err = th.createPost(th.User.Id, th.ChannelBasic.Id, "channel 1 2 3", "", model.POST_DEFAULT, 0, false)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
defer th.deleteUserPosts(th.User.Id)
|
defer th.deleteUserPosts(th.User.Id)
|
||||||
|
|
||||||
params := &model.SearchParams{Terms: "\"channel test 1 2 3\""}
|
params := &model.SearchParams{Terms: "\"channel test 1 2 3\""}
|
||||||
|
|||||||
@@ -1490,6 +1490,8 @@ func (s *SqlPostStore) search(teamId string, userId string, params *model.Search
|
|||||||
|
|
||||||
if params.OrTerms {
|
if params.OrTerms {
|
||||||
queryParams["Terms"] = "(" + strings.Join(strings.Fields(terms), " | ") + ")" + excludeClause
|
queryParams["Terms"] = "(" + strings.Join(strings.Fields(terms), " | ") + ")" + excludeClause
|
||||||
|
} else if strings.HasPrefix(terms, `"`) && strings.HasSuffix(terms, `"`) {
|
||||||
|
queryParams["Terms"] = "(" + strings.Join(strings.Fields(terms), " <-> ") + ")" + excludeClause
|
||||||
} else {
|
} else {
|
||||||
queryParams["Terms"] = "(" + strings.Join(strings.Fields(terms), " & ") + ")" + excludeClause
|
queryParams["Terms"] = "(" + strings.Join(strings.Fields(terms), " & ") + ")" + excludeClause
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user