Remove items/attachments from index on delete

This commit is contained in:
Eike Kettner 2020-06-25 00:00:10 +02:00
parent 64c96942a9
commit 0ba1736bc8
4 changed files with 25 additions and 3 deletions

View File

@ -302,13 +302,17 @@ object OItem {
.map(AddResult.fromUpdate)
def deleteItem(itemId: Ident, collective: Ident): F[Int] =
QItem.delete(store)(itemId, collective)
QItem
.delete(store)(itemId, collective)
.flatTap(_ => fts.removeItem(logger, itemId))
def getProposals(item: Ident, collective: Ident): F[MetaProposalList] =
store.transact(QAttachment.getMetaProposals(item, collective))
def deleteAttachment(id: Ident, collective: Ident): F[Int] =
QAttachment.deleteSingleAttachment(store)(id, collective)
QAttachment
.deleteSingleAttachment(store)(id, collective)
.flatTap(_ => fts.removeAttachment(logger, id))
def setAttachmentName(
attachId: Ident,

View File

@ -87,6 +87,10 @@ trait FtsClient[F[_]] {
)
)
def removeItem(logger: Logger[F], itemId: Ident): F[Unit]
def removeAttachment(logger: Logger[F], attachId: Ident): F[Unit]
/** Clears the index removes everything. */
def clearAll(logger: Logger[F]): F[Unit]
@ -113,6 +117,12 @@ object FtsClient {
def indexData(logger: Logger[F], data: Stream[F, TextData]): F[Unit] =
logger.warn("Full-text search is disabled!")
def removeItem(logger: Logger[F], itemId: Ident): F[Unit] =
logger.warn("Full-text search is disabled!")
def removeAttachment(logger: Logger[F], attachId: Ident): F[Unit] =
logger.warn("Full-text search is disabled!")
def clearAll(logger: Logger[F]): F[Unit] =
logger.warn("Full-text search is disabled!")

View File

@ -42,6 +42,14 @@ final class SolrFtsClient[F[_]: Effect](
}
} yield ()).compile.drain
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}")
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}")
def clearAll(logger: Logger[F]): F[Unit] =
logger.info("Deleting complete full-text index!") *>
solrUpdate.delete("*:*")

View File

@ -146,7 +146,7 @@ viewSearchBar flags model =
div
[ classList
[ ( "invisible hidden", not model.menuCollapsed )
, ( "ui secondary menu container", True )
, ( "ui secondary stackable menu container", True )
]
]
[ a