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:
不插电
2024-02-23 15:37:40 +08:00
committed by GitHub
parent 1f835502ba
commit f1979a8bbc
8 changed files with 377 additions and 3 deletions

View File

@ -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)
}
}