diff --git a/packages/client-app/internal_packages/search-index/lib/thread-search-index-store.es6 b/packages/client-app/internal_packages/search-index/lib/thread-search-index-store.es6 index c48c18477..0c3dd4b80 100644 --- a/packages/client-app/internal_packages/search-index/lib/thread-search-index-store.es6 +++ b/packages/client-app/internal_packages/search-index/lib/thread-search-index-store.es6 @@ -122,12 +122,21 @@ class ThreadSearchIndexStore { if (change.objectClass !== Thread.name) { return; } - _.defer(() => { + _.defer(async () => { const {objects, type} = change const threads = objects; let promises = [] if (type === 'persist') { + const alreadyIndexedThreads = threads.filter(t => t.isSearchIndexed) + if (alreadyIndexedThreads.length > 0) { + alreadyIndexedThreads.forEach(thread => { + // Mark already indexed threads as unindexed so that we re-index them + // with updates + thread.isSearchIndexed = false + }) + await DatabaseStore.inTransaction(t => t.persistModels(alreadyIndexedThreads)) + } this.indexer.notifyHasIndexingToDo(); } else if (type === 'unpersist') { promises = threads.map(thread => this.unindexThread(thread,