paradedb-search-backend #7849

Open
lambadalambda wants to merge 20 commits from paradedb-search-backend into develop

Checklist

  • Adding a changelog: In the changelog.d directory, create a file named <code>.<type>.
### Checklist - [ ] Adding a changelog: In the `changelog.d` directory, create a file named `<code>.<type>`. <!-- `<code>` can be anything, but we recommend using a more or less unique identifier to avoid collisions, such as the branch name. `<type>` can be `add`, `change`, `remove`, `fix`, `security` or `skip`. `skip` is only used if there is no user-visible change in the PR (for example, only editing comments in the code). Otherwise, choose a type that corresponds to your change. In the file, write the changelog entry. For example, if a PR adds group functionality, we can create a file named `group.add` and write `Add group functionality` in it. If one changelog entry is not enough, you may add more. But that might mean you can split it into two PRs. Only use more than one changelog entry if you really need to (for example, when one change in the code fix two different bugs, or when refactoring). -->
Introduce an optional search backend that indexes public/unlisted Notes into a separate ParadeDB (pg_search) Postgres and queries it for status search results.
Add a skipped-by-default integration test that boots a ParadeDB container, creates the BM25 index, indexes posts, and verifies search results against the real backend.
Remove warnings that break --warnings-as-errors, add TCP readiness check, and start the ParadeDB Repo with a small pool to reduce connection churn while booting the dockerized backend.
Use uuid ids in the ParadeDB documents table to satisfy BM25 key_field requirements and adjust indexing/search to dump FlakeIds consistently. Also fix the ParadeDB backend unit test to avoid invalid pinning on struct fields.
Re-apply public Create visibility checks when resolving backend hits, improve UUID/FlakeId id parsing, and add tests for poisoned hits and UUID-string ids. Also tighten the docker integration test with localhost-only binding and config restoration.
Make ParadeDB search typo-tolerant via configurable fuzzy distance and document the new setting. Add coverage for fuzzy query SQL and id parsing, and keep integration test stability under connection load.
Cast the bound search parameter through text before  so Postgrex can handle the prepared statement type inference. Add matching test assertion updates.
Add ParadeDB fuzzy integration coverage
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
cae3c9a980
Extend the docker-backed ParadeDB integration test to verify typo-tolerant status search with fuzzy_distance enabled, covering prepared-parameter fuzzy casts against a real backend.
Merge branch 'develop' into paradedb-search-backend
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
865ddfdce0
Owner

mix tasks don't work unless you update lib/mix/pleroma.ex with the same logic on when to start the new Repo

edit: done

mix tasks don't work unless you update lib/mix/pleroma.ex with the same logic on when to start the new Repo edit: done
Owner

I don't know that we should default to a pool_size of 10

It would be nice if we moved some of the mix task migration logic out of the mix task and into the backend so we can run it from an attached console easily to do the migration online

I don't know that we should default to a pool_size of 10 It would be nice if we moved some of the mix task migration logic out of the mix task and into the backend so we can run it from an attached console easily to do the migration online
Owner

Can we include the post subject and the media/attachment descriptions in the index? If we make them separate columns we have to rebuild the entire search index on our test servers, but it might give us more flexibility in the future. Otherwise we have to just concatenate that text into the post content I guess

Can we include the post subject and the media/attachment descriptions in the index? If we make them separate columns we have to rebuild the entire search index on our test servers, but it might give us more flexibility in the future. Otherwise we have to just concatenate that text into the post content I guess
Merge branch 'develop' into paradedb-search-backend
Some checks failed
ci/woodpecker/pr/changelog Pipeline was successful
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/unit-testing-elixir-1.18 unknown status
ci/woodpecker/pr/unit-testing-elixir-1.15 unknown status
7e97216b52
Merge branch 'develop' into paradedb-search-backend
Some checks failed
ci/woodpecker/pr/changelog Pipeline was successful
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/unit-testing-elixir-1.15 unknown status
ci/woodpecker/pr/unit-testing-elixir-1.18 unknown status
be2a5056a3
Merge branch 'develop' into paradedb-search-backend
Some checks failed
ci/woodpecker/pr/changelog Pipeline was successful
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/unit-testing-elixir-1.15 unknown status
ci/woodpecker/pr/unit-testing-elixir-1.18 unknown status
ci/woodpecker/pr/docker-armv7 Pipeline was successful
ac05f65fbb
Fix ParadeDB search indexing
Some checks failed
ci/woodpecker/pr/changelog Pipeline was successful
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/unit-testing-elixir-1.18 unknown status
ci/woodpecker/pr/unit-testing-elixir-1.15 unknown status
ci/woodpecker/pr/docker-armv7 Pipeline was successful
cd28c2089c
Some checks failed
ci/woodpecker/pr/changelog Pipeline was successful
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/unit-testing-elixir-1.18 unknown status
ci/woodpecker/pr/unit-testing-elixir-1.15 unknown status
ci/woodpecker/pr/docker-armv7 Pipeline was successful
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin paradedb-search-backend:paradedb-search-backend
git switch paradedb-search-backend

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch develop
git merge --no-ff paradedb-search-backend
git switch paradedb-search-backend
git rebase develop
git switch develop
git merge --ff-only paradedb-search-backend
git switch paradedb-search-backend
git rebase develop
git switch develop
git merge --no-ff paradedb-search-backend
git switch develop
git merge --squash paradedb-search-backend
git switch develop
git merge --ff-only paradedb-search-backend
git switch develop
git merge paradedb-search-backend
git push origin develop
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pleroma/pleroma!7849
No description provided.