I have a Sitecore 8.1-3 instance that uses Solr. I recently had to go and fix some mongo data in the Contact collection that was incorrect. I wrote a script that fixed the data errors. I am wondering if the Sitecore analytics index will eventually figure this out and update the index. Right now when I do a search in the Experience Profile I am still seeing the old data. I know that you can re-index the analytics database by completely rebuilding the reporting database. I really don't want to do that unless absolutely necessary. I am hoping that Sitecore has some automated way that the analytics index eventually fixes itself. Anyone know?
The Reporting Database, analytics index, and Mongo, all share a special relationship. they require all three repositories of data to be insync. for the most part, analytics database is kept up to date during processing tasks.
However, once contact data and interaction data has been processed, in most cases, processing won't reprocess that information. a good example of this is if data is removed from xDB (mongo).
in the event that any one of these three repositories get out of sync with each other, the best way to "fix" it, is to rebuild the reporting database.
Otherwise, there is no concrete way to update the analytics index or reporting databse.
After talking with Corey on Slack, his exact issue is that he updated facet information, like names, in MongoDB directly.
Alternatively, without rebuilding the reporting database, you can write code that utilizes
ContentSearch to systematically update the Contact record, performing a
SaveAndFlushToXdb() method. This will execute the appropriate processing tasks to update both the analytics index as well as reporting databse.