Add a route that only searches the full-text index

It returns the results in the same order as received from the index to
preserve the relevance ordering.
This commit is contained in:
Eike Kettner
2020-06-23 23:02:58 +02:00
parent d9f0f05613
commit d5c9923a6d
8 changed files with 178 additions and 45 deletions

View File

@ -29,23 +29,21 @@ work (just the fulltext search is then not working).
## Decision Outcome
If docspell is running on PostgreSQL, it would be the best option to
also use it for fulltext search. But I don't want to lock the database
to PostgreSQL *only* because of the fulltext search feature. This
would be a too large impact on the whole application.
If docspell is running on PostgreSQL, it would be nice to also use it
for fulltext search to save the cost of running another component. But
I don't want to lock the database to PostgreSQL *only* because of the
fulltext search feature.
ElasticSearch and Apache SOLR are quite similiar in features. SOLR is
part of Lucene and therefore lives in the Apache ecosystem. I would
choose this over ElasticSearch, which is backed by a company (the oss
version is released under the Apache License, afaiu). Regarding
features, both are great.
choose SOLR over ElasticSearch, because I used it before.
The last option (supporting all) is interesting, since it would enable
to use PostgreSQL for fulltext search, when already using PostgreSQL
as the database for docspell.
to use PostgreSQL for fulltext search for those that use PostgreSQL as
the database for docspell.
So in a first step, identify what docspell needs from a fulltext
search component and create this interface and an implementation for
Apache SOLR. This enables all users to use the fulltext search
feature. As a later step, an implementation based on PostgreSQL could
be provided, too.
In a first step, identify what docspell needs from a fulltext search
component and create this interface and an implementation for Apache
SOLR. This enables all users to use the fulltext search feature. As a
later step, an implementation based on PostgreSQL and/or ElasticSearch
could be provided, too.