с другой стороны может и и не так уж и страшно, что при мутации коллекции будут в базе удаляться сущности. Может я просто испугался того, что такое удаление слишком лихо происходит, однако я на таких вещах порой отстреливаю себе ноги.
а так ничего дефолтного для обнаружение слов конечно же нет, так что будет что-то такое val words = string.split(Regex("\\b")).filter { it.isNotBlank() }
а не, сам настрогал. \b это [word] boundary, там квантификаторы не имеют смысла. dhjвроде специальный юникодный character class был, ну либо самостоятельно выкидывать вайтспейсы.