mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Fix global re-index task to re-create the schema
Otherwise new instances could not be re-indexed.
This commit is contained in:
@ -44,19 +44,19 @@ final class SolrFtsClient[F[_]: Effect](
|
||||
|
||||
def removeItem(logger: Logger[F], itemId: Ident): F[Unit] =
|
||||
logger.debug(s"Remove item '${itemId.id}' from index") *>
|
||||
solrUpdate.delete(s"${Field.itemId.name}:${itemId.id}")
|
||||
solrUpdate.delete(s"${Field.itemId.name}:${itemId.id}", None)
|
||||
|
||||
def removeAttachment(logger: Logger[F], attachId: Ident): F[Unit] =
|
||||
logger.debug(s"Remove attachment '${attachId.id}' from index") *>
|
||||
solrUpdate.delete(s"${Field.attachmentId.name}:${attachId.id}")
|
||||
solrUpdate.delete(s"${Field.attachmentId.name}:${attachId.id}", None)
|
||||
|
||||
def clearAll(logger: Logger[F]): F[Unit] =
|
||||
logger.info("Deleting complete full-text index!") *>
|
||||
solrUpdate.delete("*:*")
|
||||
solrUpdate.delete("*:*", Option(0))
|
||||
|
||||
def clear(logger: Logger[F], collective: Ident): F[Unit] =
|
||||
logger.info(s"Deleting full-text index for collective ${collective.id}") *>
|
||||
solrUpdate.delete(s"${Field.collectiveId.name}:${collective.id}")
|
||||
solrUpdate.delete(s"${Field.collectiveId.name}:${collective.id}", Option(0))
|
||||
}
|
||||
|
||||
object SolrFtsClient {
|
||||
|
@ -17,7 +17,7 @@ trait SolrUpdate[F[_]] {
|
||||
|
||||
def update(tds: List[TextData]): F[Unit]
|
||||
|
||||
def delete(q: String): F[Unit]
|
||||
def delete(q: String, commitWithin: Option[Int]): F[Unit]
|
||||
}
|
||||
|
||||
object SolrUpdate {
|
||||
@ -42,8 +42,16 @@ object SolrUpdate {
|
||||
client.expect[Unit](req)
|
||||
}
|
||||
|
||||
def delete(q: String): F[Unit] = {
|
||||
val req = Method.POST(Delete(q).asJson, url)
|
||||
def delete(q: String, commitWithin: Option[Int]): F[Unit] = {
|
||||
val uri = commitWithin match {
|
||||
case Some(n) =>
|
||||
if (n <= 0)
|
||||
url.removeQueryParam("commitWithin").withQueryParam("commit", "true")
|
||||
else url.withQueryParam("commitWithin", n.toString)
|
||||
case None =>
|
||||
url
|
||||
}
|
||||
val req = Method.POST(Delete(q).asJson, uri)
|
||||
client.expect[Unit](req)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user