eikek / docspell

Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.
https://docspell.org
GNU Affero General Public License v3.0
1.51k stars 116 forks source link

Feature request: support Typesense as Full-Text Search backend #2548

Open Jackymancs4 opened 3 months ago

Jackymancs4 commented 3 months ago

Hello @eikek

I'm planning to self-host Docspell for personal use. I already have a small Typesense cluster, so I would rather use that instead of setting up a dedicated Solr for Full-Text search.

I'm an experienced Java developer, and while I never used Scala, I would like to give it a try and implement the fts interfaces. If I manage, would you review a PR? I guess It would require adding a new depedency.

For reference:

Anyway, Thank you.

eikek commented 3 months ago

Hello @Jackymancs4 thank you for the suggestion. I didn't know typesense before. I have to admit that I'm a bit hesitant, because it means another thing to maintain in the future. Then adding more dependencies is something I want to avoid. That said, I think it is ok, if it is done without introducing more dependencies. I saw they have a json api and docspell has already all the tools included for this. Solr works exactly the same way. I would be fine with a PR that implements this with the current available tools (http4s client an circe json). The problem left is maintenance. I see that typesense is before version 1, if they are using semantic versioning it means to expect some changes in the next future. If this happens and fixing means to spend much time reading through their docs, then I would just drop it again, unless someone else volunteers :-) Perhaps it would be then good to mark it as alha/experimental in the docspell docs.

pschichtel commented 1 month ago

I wonder if it would be reasonable to have a generic http/json backend that people can implement to adapt other backends. They way other people could build and maintain these kinds of integration as a completely separate project. just my 2 cents.