Add Purpose as a searchable field (#8067)

* Add Purpose as a searchable field

* Add New Index and Remove old for Channels

* Include Purpose in FullTextSearch Clause

* Move removeIndex for Channels into upgrade.go
Этот коммит содержится в:
Chris Duarte
2018-06-26 10:47:39 -07:00
коммит произвёл Harrison Healey
родитель 3e9fe291f1
Коммит 41d2a9f435
3 изменённых файлов: 47 добавлений и 3 удалений

Просмотреть файл

@@ -1708,6 +1708,14 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) {
o8.Type = model.CHANNEL_PRIVATE
store.Must(ss.Channel().Save(&o8, -1))
o9 := model.Channel{}
o9.TeamId = o1.TeamId
o9.DisplayName = "Channel With Purpose"
o9.Purpose = "This can now be searchable!"
o9.Name = "with-purpose"
o9.Type = model.CHANNEL_OPEN
store.Must(ss.Channel().Save(&o9, -1))
if result := <-ss.Channel().SearchMore(m1.UserId, o1.TeamId, "ChannelA"); result.Err != nil {
t.Fatal(result.Err)
} else {
@@ -1773,6 +1781,19 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) {
}
}
if result := <-ss.Channel().SearchMore(m1.UserId, o1.TeamId, "now searchable"); result.Err != nil {
t.Fatal(result.Err)
} else {
channels := result.Data.(*model.ChannelList)
if len(*channels) != 1 {
t.Fatal("should return 1 channel")
}
if (*channels)[0].Name != o9.Name {
t.Fatal("wrong channel returned")
}
}
/*
// Disabling this check as it will fail on PostgreSQL as we have "liberalised" channel matching to deal with
// Full-Text Stemming Limitations.
@@ -1884,6 +1905,14 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) {
o11.Type = model.CHANNEL_OPEN
store.Must(ss.Channel().Save(&o11, -1))
o12 := model.Channel{}
o12.TeamId = o1.TeamId
o12.DisplayName = "Channel With Purpose"
o12.Purpose = "This can now be searchable!"
o12.Name = "with-purpose"
o12.Type = model.CHANNEL_OPEN
store.Must(ss.Channel().Save(&o12, -1))
for name, search := range map[string]func(teamId string, term string) store.StoreChannel{
"AutocompleteInTeam": ss.Channel().AutocompleteInTeam,
"SearchInTeam": ss.Channel().SearchInTeam,
@@ -1986,6 +2015,19 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) {
t.Fatal("wrong channel returned")
}
}
if result := <-search(o1.TeamId, "now searchable"); result.Err != nil {
t.Fatal(result.Err)
} else {
channels := result.Data.(*model.ChannelList)
if len(*channels) != 1 {
t.Fatal("should return 1 channel")
}
if (*channels)[0].Name != o12.Name {
t.Fatal("wrong channel returned")
}
}
})
}
}