feat(search): search with meilisearch
(#6060)
* feat(search): search with meilisearch. * feat(search): meilisearch supports auto update. * chores: remove utils.Log. * fix(search): the null pointer caused by deleting non-existing file/folder indexes. --------- Co-authored-by: Andy Hsu <i@nn.ci>
This commit is contained in:
@ -29,6 +29,20 @@ func SliceContains[T comparable](arr []T, v T) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// SliceAllContains check if slice all contains elements
|
||||
func SliceAllContains[T comparable](arr []T, vs ...T) bool {
|
||||
vsMap := make(map[T]struct{})
|
||||
for _, v := range arr {
|
||||
vsMap[v] = struct{}{}
|
||||
}
|
||||
for _, v := range vs {
|
||||
if _, ok := vsMap[v]; !ok {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// SliceConvert convert slice to another type slice
|
||||
func SliceConvert[S any, D any](srcS []S, convert func(src S) (D, error)) ([]D, error) {
|
||||
res := make([]D, 0, len(srcS))
|
||||
@ -79,3 +93,9 @@ func SliceFilter[T any](arr []T, filter func(src T) bool) []T {
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func SliceReplace[T any](arr []T, replace func(src T) T) {
|
||||
for i, src := range arr {
|
||||
arr[i] = replace(src)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user