Fix global re-index task to re-create the schema

Otherwise new instances could not be re-indexed.
This commit is contained in:
Eike Kettner
2020-06-25 22:55:23 +02:00
parent 4a41168bbb
commit dc8f1a0387
5 changed files with 56 additions and 11 deletions

View File

@ -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 {

View File

@ -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)
}