Refactor full-text migrations and add folder to solr schema

This commit is contained in:
Eike Kettner
2020-07-12 00:30:37 +02:00
parent e387b5513f
commit aeba4ba913
9 changed files with 102 additions and 30 deletions

View File

@ -17,11 +17,12 @@ import org.log4s.getLogger
*/
trait FtsClient[F[_]] {
/** Initialization tasks. This is called exactly once and then never
/** Initialization tasks. This is called exactly once at the very
* beginning when initializing the full-text index and then never
* again (except when re-indexing everything). It may be used to
* setup the database.
*/
def initialize: F[Unit]
def initialize: List[FtsMigration[F]]
/** Run a full-text search. */
def search(q: FtsQuery): F[FtsResult]
@ -107,8 +108,8 @@ object FtsClient {
new FtsClient[F] {
private[this] val logger = Logger.log4s[F](getLogger)
def initialize: F[Unit] =
logger.info("Full-text search is disabled!")
def initialize: List[FtsMigration[F]] =
Nil
def search(q: FtsQuery): F[FtsResult] =
logger.warn("Full-text search is disabled!") *> FtsResult.empty.pure[F]

View File

@ -0,0 +1,24 @@
package docspell.ftsclient
import docspell.common._
final case class FtsMigration[F[_]](
version: Int,
engine: Ident,
description: String,
task: F[FtsMigration.Result]
)
object FtsMigration {
sealed trait Result
object Result {
case object WorkDone extends Result
case object ReIndexAll extends Result
case object IndexAll extends Result
def workDone: Result = WorkDone
def reIndexAll: Result = ReIndexAll
def indexAll: Result = IndexAll
}
}