feat(search): enhanced meilisearch search experience (#864)

* feat(search): enhanced `meilisearch` search experience
- upgrade `meilisearch` dependency
- support subdirectory search
- optimize searchDocument fields for subdirectory search
- specify full index uid instead of index prefix

* fix(search): more fixes to `meilisearch`
- make use of context where context was not used
- remove code of waiting task in deletion process, as tasks are queued and will be executed orderly (if tasks were submitted to the queue successfully), which can improve `AutoUpdate` performance
This commit is contained in:
hcrgm
2025-07-31 11:24:22 +08:00
committed by GitHub
parent 54ae7e6d9b
commit 1682e873d6
8 changed files with 276 additions and 375 deletions

View File

@ -1,6 +1,9 @@
package utils
import "testing"
import (
"reflect"
"testing"
)
func TestEncodePath(t *testing.T) {
t.Log(EncodePath("http://localhost:5244/d/123#.png"))
@ -20,3 +23,31 @@ func TestFixAndCleanPath(t *testing.T) {
}
}
}
func TestGetPathHierarchy(t *testing.T) {
testCases := map[string][]string{
"": {"/"},
"/": {"/"},
"/home": {"/", "/home"},
"/home/user": {"/", "/home", "/home/user"},
"/home/user/documents": {"/", "/home", "/home/user", "/home/user/documents"},
"/home/user/documents/files/test.txt": {"/", "/home", "/home/user", "/home/user/documents", "/home/user/documents/files", "/home/user/documents/files/test.txt"},
"home": {"/", "/home"},
"home/user": {"/", "/home", "/home/user"},
"./home/": {"/", "/home"},
"..//home//user/../././": {"/", "/home"},
"/home///user///documents///": {"/", "/home", "/home/user", "/home/user/documents"},
"/home/user with spaces/doc": {"/", "/home", "/home/user with spaces", "/home/user with spaces/doc"},
"/home/user@domain.com/files": {"/", "/home", "/home/user@domain.com", "/home/user@domain.com/files"},
"/home/.hidden/.config": {"/", "/home", "/home/.hidden", "/home/.hidden/.config"},
}
for input, expected := range testCases {
t.Run(input, func(t *testing.T) {
result := GetPathHierarchy(input)
if !reflect.DeepEqual(result, expected) {
t.Errorf("GetPathHierarchy(%q) = %v, want %v", input, result, expected)
}
})
}
}