diff --git a/db/go.mod b/db/go.mod index c18f6908..c356aacd 100644 --- a/db/go.mod +++ b/db/go.mod @@ -4,7 +4,7 @@ go 1.25.0 require ( github.com/go-ap/jsonld v0.0.0-20250905102310-8480b0fe24d9 - github.com/meilisearch/meilisearch-go v0.29.0 + github.com/meilisearch/meilisearch-go v0.36.1 github.com/pocketbase/dbx v1.12.0 github.com/pocketbase/pocketbase v0.36.5 github.com/tkrajina/gpxgo v1.4.0 @@ -17,8 +17,6 @@ require ( github.com/go-sql-driver/mysql v1.9.3 // indirect github.com/golang-jwt/jwt/v5 v5.3.1 // indirect github.com/gorilla/css v1.0.1 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect github.com/valyala/fastjson v1.6.4 // indirect golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect ) @@ -35,7 +33,6 @@ require ( github.com/go-ap/activitypub v0.0.0-20250905102448-e9df599e4528 github.com/go-fed/httpsig v1.1.0 github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect - github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect diff --git a/db/go.sum b/db/go.sum index 8e4b044e..8b891908 100644 --- a/db/go.sum +++ b/db/go.sum @@ -2,7 +2,6 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078 h1:cliQ4HHsCo6xi2oWZYKWW4bly/Ory9FuTpFPRxj/mAg= git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078/go.mod h1:g/V2Hjas6Z1UHUp4yIx6bATpNzJ7DYtD0FG3+xARWxs= -github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= @@ -42,9 +41,6 @@ github.com/go-ozzo/ozzo-validation/v4 v4.3.0/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRi github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= -github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -60,20 +56,16 @@ github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/meilisearch/meilisearch-go v0.29.0 h1:HZ9NEKN59USINQ/DXJge/aaXq8IrsKbXGTdAoBaaDz4= -github.com/meilisearch/meilisearch-go v0.29.0/go.mod h1:2cRCAn4ddySUsFfNDLVPod/plRibQsJkXF/4gLhxbOk= +github.com/meilisearch/meilisearch-go v0.36.1 h1:mJTCJE5g7tRvaqKco6DfqOuJEjX+rRltDEnkEC02Y0M= +github.com/meilisearch/meilisearch-go v0.36.1/go.mod h1:hWcR0MuWLSzHfbz9GGzIr3s9rnXLm1jqkmHkJPbUSvM= github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk= github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA= github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= @@ -98,15 +90,11 @@ github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tkrajina/gpxgo v1.4.0 h1:cSD5uSwy3VZuNFieTEZLyRnuIwhonQEkGPkPGW4XNag= github.com/tkrajina/gpxgo v1.4.0/go.mod h1:BXSMfUAvKiEhMEXAFM2NvNsbjsSvp394mOvdcNjettg= github.com/twpayne/go-polyline v1.1.1 h1:/tSF1BR7rN4HWj4XKqvRUNrCiYVMCvywxTFVofvDV0w= diff --git a/db/main.go b/db/main.go index 0d667194..406f4811 100644 --- a/db/main.go +++ b/db/main.go @@ -306,7 +306,7 @@ func updateTrailHandler(client meilisearch.ServiceManager) func(e *core.RecordEv func deleteTrailHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error { return func(e *core.RecordEvent) error { record := e.Record - task, err := client.Index("trails").DeleteDocument(record.Id) + task, err := client.Index("trails").DeleteDocument(record.Id, nil) if err != nil { return err } @@ -682,7 +682,7 @@ func updateListHandler(client meilisearch.ServiceManager) func(e *core.RecordEve func deleteListHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error { return func(e *core.RecordEvent) error { record := e.Record - _, err := client.Index("lists").DeleteDocument(record.Id) + _, err := client.Index("lists").DeleteDocument(record.Id, nil) if err != nil { return err } @@ -1330,7 +1330,7 @@ func bootstrapMeilisearchDocuments(app core.App, client meilisearch.ServiceManag var page int64 = 0 // Clear index before re-indexing - if _, err := client.Index("trails").DeleteAllDocuments(); err != nil { + if _, err := client.Index("trails").DeleteAllDocuments(nil); err != nil { return err } @@ -1356,7 +1356,7 @@ func bootstrapMeilisearchDocuments(app core.App, client meilisearch.ServiceManag } // --- Lists --- - if _, err := client.Index("lists").DeleteAllDocuments(); err != nil { + if _, err := client.Index("lists").DeleteAllDocuments(nil); err != nil { return err } diff --git a/db/migrations/1742167033_init_meilisearch.go b/db/migrations/1742167033_init_meilisearch.go index 3e75d45c..31dcb99c 100644 --- a/db/migrations/1742167033_init_meilisearch.go +++ b/db/migrations/1742167033_init_meilisearch.go @@ -28,7 +28,7 @@ func init() { return err } - _, err = client.Index("trails").UpdateFilterableAttributes(&[]string{ + _, err = client.Index("trails").UpdateFilterableAttributes(&[]interface{}{ "_geo", "author", "category", "completed", "date", "difficulty", "distance", "elevation_gain", "elevation_loss", "public", "shares", "tags", }) @@ -53,7 +53,7 @@ func init() { return err } - _, err = client.Index("lists").UpdateFilterableAttributes(&[]string{ + _, err = client.Index("lists").UpdateFilterableAttributes(&[]interface{}{ "author", "public", "shares", }) if err != nil { diff --git a/db/migrations/1749831369_update_sortable_attributes.go b/db/migrations/1749831369_update_sortable_attributes.go index 5c058496..24699e48 100644 --- a/db/migrations/1749831369_update_sortable_attributes.go +++ b/db/migrations/1749831369_update_sortable_attributes.go @@ -20,7 +20,7 @@ func init() { return err } - _, err = client.Index("trails").UpdateFilterableAttributes(&[]string{ + _, err = client.Index("trails").UpdateFilterableAttributes(&[]any{ "_geo", "author", "category", "completed", "date", "difficulty", "distance", "elevation_gain", "elevation_loss", "public", "shares", "tags", "likes", }) @@ -33,7 +33,7 @@ func init() { return err } - _, err = client.Index("trails").UpdateFilterableAttributes(&[]string{ + _, err = client.Index("trails").UpdateFilterableAttributes(&[]any{ "_geo", "author", "category", "completed", "date", "difficulty", "distance", "elevation_gain", "elevation_loss", "public", "shares", "tags", }) diff --git a/db/util/meilisearch.go b/db/util/meilisearch.go index f59840d2..2fee69e8 100644 --- a/db/util/meilisearch.go +++ b/db/util/meilisearch.go @@ -174,7 +174,7 @@ func getPolyline(app core.App, r *core.Record) (string, error) { return string(polyline.EncodeCoords(coordinates)), nil } -func documentFromListRecord(r *core.Record, author *core.Record, includeShares bool) (map[string]interface{}, error) { +func documentFromListRecord(r *core.Record, author *core.Record, includeShares bool) (map[string]any, error) { totalElevationGain := 0.0 totalElevationLoss := 0.0 @@ -247,7 +247,7 @@ func documentFromListRecord(r *core.Record, author *core.Record, includeShares b return document, nil } -func documentFromRemoteRecord(r *core.Record, index string) (map[string]interface{}, error) { +func documentFromRemoteRecord(r *core.Record, index string) (map[string]any, error) { client := &http.Client{} if r.GetString("iri") == "" { @@ -294,10 +294,16 @@ func documentFromRemoteRecord(r *core.Record, index string) (map[string]interfac return nil, fmt.Errorf("no documents in result set") } - document, ok := searchResponse.Hits[0].(map[string]interface{}) - if !ok { - return nil, fmt.Errorf("unexpected document format") + var document map[string]any + documentByteData, err := json.Marshal(searchResponse.Hits[0]) + if err != nil { + return nil, err } + + if err := json.Unmarshal(documentByteData, &document); err != nil { + return nil, err + } + return document, nil } @@ -336,7 +342,7 @@ func IndexTrails(app core.App, trails []*core.Record, client meilisearch.Service documents[i] = doc } - if _, err := client.Index("trails").AddDocuments(documents); err != nil { + if _, err := client.Index("trails").AddDocuments(documents, nil); err != nil { return err } @@ -359,7 +365,7 @@ func UpdateTrail(app core.App, r *core.Record, author *core.Record, client meili } documents := []map[string]interface{}{doc} - task, err := client.Index("trails").UpdateDocuments(documents) + task, err := client.Index("trails").UpdateDocuments(documents, nil) if err != nil { return err @@ -381,7 +387,7 @@ func UpdateTrailShares(trailId string, shares []string, client meilisearch.Servi "shares": shares, }, } - if _, err := client.Index("trails").UpdateDocuments(documents); err != nil { + if _, err := client.Index("trails").UpdateDocuments(documents, nil); err != nil { return err } return nil @@ -395,7 +401,7 @@ func UpdateTrailLikes(trailId string, likes []string, client meilisearch.Service "likes": likes, }, } - if _, err := client.Index("trails").UpdateDocuments(documents); err != nil { + if _, err := client.Index("trails").UpdateDocuments(documents, nil); err != nil { return err } return nil @@ -426,7 +432,7 @@ func IndexLists(app core.App, lists []*core.Record, client meilisearch.ServiceMa } documents[i] = doc } - if _, err := client.Index("lists").AddDocuments(documents); err != nil { + if _, err := client.Index("lists").AddDocuments(documents, nil); err != nil { return err } @@ -444,7 +450,7 @@ func UpdateList(app core.App, r *core.Record, author *core.Record, client meilis return err } - if _, err = client.Index("lists").UpdateDocuments(documents); err != nil { + if _, err = client.Index("lists").UpdateDocuments(documents, nil); err != nil { return err } @@ -458,7 +464,7 @@ func UpdateListShares(listId string, shares []string, client meilisearch.Service "shares": shares, }, } - if _, err := client.Index("lists").UpdateDocuments(documents); err != nil { + if _, err := client.Index("lists").UpdateDocuments(documents, nil); err != nil { return err } return nil diff --git a/docker-compose.yml b/docker-compose.yml index 7a454972..8476db94 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ x-common-env: &cenv services: search: container_name: wanderer-search - image: getmeili/meilisearch:v1.11.3 + image: getmeili/meilisearch:v1.36.0 environment: <<: *cenv MEILI_NO_ANALYTICS: "true"