Skip to content

feat: implement doctrine-based fulltext search#2118

Merged
mejo- merged 12 commits intomainfrom
feat/doctrine-fulltext-search
Apr 15, 2026
Merged

feat: implement doctrine-based fulltext search#2118
mejo- merged 12 commits intomainfrom
feat/doctrine-fulltext-search

Conversation

@benjaminfrueh
Copy link
Copy Markdown
Contributor

@benjaminfrueh benjaminfrueh commented Nov 11, 2025

📝 Summary

Replaces TNTSearch with nextcloud database full-text search using doctrine.

Resolves #2050

Todo

  • Implement language detection in stemmer
  • Scope php-stemmer dependency using php-scoper
  • Remove documentation about extra tntsearch dependencies
  • Migrate e2e FTS tests to Playwright
  • Follow-up: add Arabic stemmer

🏁 Checklist

  • Code is properly formatted (npm run lint / npm run stylelint / composer run cs:check)
  • Sign-off message is added to all commits
  • Tests (unit, integration and/or end-to-end) passing and the changes are covered with tests
  • Documentation (README or documentation) has been updated or is not required

Comment thread composer.json
@benjaminfrueh benjaminfrueh force-pushed the feat/doctrine-fulltext-search branch from 07cbae6 to d8a4b06 Compare November 11, 2025 22:28
@github-actions
Copy link
Copy Markdown
Contributor

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

@github-project-automation github-project-automation Bot moved this to 🧭 Planning evaluation (don't pick) in 📝 Productivity team Mar 5, 2026
@benjaminfrueh benjaminfrueh moved this from 🧭 Planning evaluation (don't pick) to 🏗️ In progress in 📝 Productivity team Mar 5, 2026
Copy link
Copy Markdown
Member

@mejo- mejo- left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice work, thanks so much @benjaminfrueh. I finally found time to go through the code changes, read up a bit on stemming, fuzzy searching, bigrams and other stuff I didn't know much about before 😆

The general approach of your implementation looks really clean and promising to me.

I have quite a few comments and questions and am curious what you think about them.

Comment thread lib/Search/FileSearch/Db/SearchDoc.php
Comment thread lib/Search/FileSearch/Db/SearchDocMapper.php Outdated
Comment thread lib/Search/FileSearch/Stemmer/Stemmer.php Outdated
Comment thread lib/Search/FileSearch/Stemmer/Stemmer.php
Comment thread lib/Search/FileSearch/Tokenizer/WordTokenizer.php Outdated
Comment thread lib/Search/FileSearch/FileIndexer.php Outdated
Comment thread lib/Search/FileSearch/Db/SearchWordMapper.php Outdated
Comment thread lib/Search/FileSearch/FileSearcher.php Outdated
Comment thread lib/Search/FileSearch/Tokenizer/ClauseTokenizer.php Outdated
Comment thread lib/Search/FileSearch/FileSearcher.php Outdated
@mejo- mejo- force-pushed the feat/doctrine-fulltext-search branch from d8a4b06 to b26823e Compare March 8, 2026 18:42
@benjaminfrueh benjaminfrueh force-pushed the feat/doctrine-fulltext-search branch from b26823e to 2ee83e2 Compare March 19, 2026 19:01
@mejo- mejo- force-pushed the feat/doctrine-fulltext-search branch 3 times, most recently from bfd5805 to 14cf7c2 Compare March 31, 2026 14:07
@benjaminfrueh benjaminfrueh force-pushed the feat/doctrine-fulltext-search branch 2 times, most recently from 7e969f2 to 3474638 Compare April 1, 2026 15:41
@benjaminfrueh benjaminfrueh marked this pull request as ready for review April 1, 2026 15:47
@benjaminfrueh benjaminfrueh force-pushed the feat/doctrine-fulltext-search branch from 6e9453d to 83f65aa Compare April 1, 2026 19:17
benjaminfrueh and others added 7 commits April 15, 2026 09:29
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
No longer needed with new search backend.

Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
benjaminfrueh and others added 2 commits April 15, 2026 09:29
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
Signed-off-by: Jonas <jonas@freesources.org>
@mejo- mejo- force-pushed the feat/doctrine-fulltext-search branch from 83f65aa to 11088c1 Compare April 15, 2026 07:43
mejo- added 2 commits April 15, 2026 09:44
Signed-off-by: Jonas <jonas@freesources.org>
Signed-off-by: Jonas <jonas@freesources.org>
@benjaminfrueh benjaminfrueh force-pushed the feat/doctrine-fulltext-search branch 9 times, most recently from fac7561 to ef4e5e3 Compare April 15, 2026 11:02
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
@benjaminfrueh benjaminfrueh force-pushed the feat/doctrine-fulltext-search branch from ef4e5e3 to 0b72e7a Compare April 15, 2026 11:04
Copy link
Copy Markdown
Member

@mejo- mejo- left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice work, thanks @benjaminfrueh ❤️

@mejo- mejo- merged commit 936d74c into main Apr 15, 2026
60 of 61 checks passed
@mejo- mejo- deleted the feat/doctrine-fulltext-search branch April 15, 2026 12:00
@github-project-automation github-project-automation Bot moved this from 🏗️ In progress to ☑️ Done in 📝 Productivity team Apr 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: ☑️ Done

Development

Successfully merging this pull request may close these issues.

feat: Use Nextcloud database for TNTSearch

3 participants