[PR #908] [MERGED] feat: add ParadeDB full-text search support for enhanced task search performance #2975

Closed
opened 2026-03-22 14:26:57 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/go-vikunja/vikunja/pull/908
Author: @kolaente
Created: 6/10/2025
Status: Merged
Merged: 7/18/2025
Merged by: @kolaente

Base: mainHead: codex/implement-full-text-search-with-pgroonga


📝 Commits (8)

  • cb46073 fix: adjust benchmark so that it only checks the task fetching
  • 6de8b6f feat(tasks): add support for ParadeDB when searching tasks
  • 8c67073 chore: refactor searching for link shares
  • 05fb609 chore: cleanup unused helper
  • 3baeb46 chore(db): simplify MultiFieldSearch
  • 4b51d0d feat(projects): add support for ParadeDB when searching for project
  • 045818b feat(ci): add tests for paradedb
  • 31b0996 fix: use assertions which are more specific

📊 Changes

14 files changed (+303 additions, -52 deletions)

View changed files

📝 .github/workflows/test.yml (+16 -7)
📝 pkg/db/db.go (+69 -2)
📝 pkg/db/fixtures/link_shares.yml (+1 -0)
📝 pkg/db/fixtures/tasks.yml (+1 -0)
📝 pkg/db/helpers.go (+52 -0)
pkg/db/helpers_test.go (+64 -0)
📝 pkg/initialize/init.go (+6 -0)
📝 pkg/models/link_sharing.go (+8 -8)
📝 pkg/models/project.go (+11 -1)
📝 pkg/models/setup_tests.go (+5 -0)
📝 pkg/models/task_collection_test.go (+37 -15)
📝 pkg/models/task_search.go (+1 -5)
📝 pkg/models/task_search_bench_test.go (+23 -5)
📝 pkg/webtests/task_collection_test.go (+9 -9)

📄 Description

Adds support for full text search using ParadeDB. In my benchmark, searching takes 14ms with ParadeDB vs. 18ms with Typesense (vs. 206ms with plain Postgres).

Summary

  • Add support for ParadeDB full-text search extension to significantly improve task search performance on PostgreSQL
  • Implement graceful fallback to standard ILIKE queries when ParadeDB is not available, maintaining backward compatibility

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/go-vikunja/vikunja/pull/908 **Author:** [@kolaente](https://github.com/kolaente) **Created:** 6/10/2025 **Status:** ✅ Merged **Merged:** 7/18/2025 **Merged by:** [@kolaente](https://github.com/kolaente) **Base:** `main` ← **Head:** `codex/implement-full-text-search-with-pgroonga` --- ### 📝 Commits (8) - [`cb46073`](https://github.com/go-vikunja/vikunja/commit/cb460733a2be596dfab4097b9775df15f666e8ad) fix: adjust benchmark so that it only checks the task fetching - [`6de8b6f`](https://github.com/go-vikunja/vikunja/commit/6de8b6f9d268752161f78dcb1f0ee14b3d823f22) feat(tasks): add support for ParadeDB when searching tasks - [`8c67073`](https://github.com/go-vikunja/vikunja/commit/8c6707394ec2dada6c505f8c4b80ca9ebdfa74ba) chore: refactor searching for link shares - [`05fb609`](https://github.com/go-vikunja/vikunja/commit/05fb6093133efa84acee142e1136fd065fabbee0) chore: cleanup unused helper - [`3baeb46`](https://github.com/go-vikunja/vikunja/commit/3baeb466328dc4192b75f095f8360ded448cc100) chore(db): simplify MultiFieldSearch - [`4b51d0d`](https://github.com/go-vikunja/vikunja/commit/4b51d0db86ec6530d627971b139ee4566371ff1f) feat(projects): add support for ParadeDB when searching for project - [`045818b`](https://github.com/go-vikunja/vikunja/commit/045818b90a1801da8f92af7a62d41ec28858d315) feat(ci): add tests for paradedb - [`31b0996`](https://github.com/go-vikunja/vikunja/commit/31b0996af5de22d0e44b78258f8cf8b9c6a87dfd) fix: use assertions which are more specific ### 📊 Changes **14 files changed** (+303 additions, -52 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/test.yml` (+16 -7) 📝 `pkg/db/db.go` (+69 -2) 📝 `pkg/db/fixtures/link_shares.yml` (+1 -0) 📝 `pkg/db/fixtures/tasks.yml` (+1 -0) 📝 `pkg/db/helpers.go` (+52 -0) ➕ `pkg/db/helpers_test.go` (+64 -0) 📝 `pkg/initialize/init.go` (+6 -0) 📝 `pkg/models/link_sharing.go` (+8 -8) 📝 `pkg/models/project.go` (+11 -1) 📝 `pkg/models/setup_tests.go` (+5 -0) 📝 `pkg/models/task_collection_test.go` (+37 -15) 📝 `pkg/models/task_search.go` (+1 -5) 📝 `pkg/models/task_search_bench_test.go` (+23 -5) 📝 `pkg/webtests/task_collection_test.go` (+9 -9) </details> ### 📄 Description Adds support for full text search using [ParadeDB](https://docs.paradedb.com/documentation/full-text/filtering). In my benchmark, searching takes 14ms with ParadeDB vs. 18ms with Typesense (vs. 206ms with plain Postgres). ## Summary - Add support for ParadeDB full-text search extension to significantly improve task search performance on PostgreSQL - Implement graceful fallback to standard ILIKE queries when ParadeDB is not available, maintaining backward compatibility --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-22 14:26:57 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#2975