2 Replies Latest reply on Apr 24, 2017 5:16 PM by inuser463284

    efficient way to store search results that invalidates them when source data is reloaded?

    New Member

      When the volumes of fuzzy searches against IIR are very high, the users can wait up to 10 seconds to see the result.  Assuming everything is tuned much as it can be, an approach that has been considered to improve the user experience is to "pre-search".  In other words, we know (in the course of the business workflow) that a search will be required in the next step.  The system runs the search, saves the result in a database table, and only then makes the "view results" bit available to the user.


      However, it's possible that the user doesn't get to a particular search for a while.  There is a risk that the data is stale by that point, and so users are forced to rerun the search anyway.  Let's assume the approach itself is acceptable to the users.


      At the moment, this 'stale flag' is shown if results have been persisted for more than 12 hours.  Although the source data is reloaded approx. every 12 hours, this approach is still inefficient:  sometimes the data is not reloaded for 24 or 36 hours (so users are forced to rerun the search even though the underlying data hasn't changed), and sometimes the data is reloaded 10 hours later, so the results might actually be stale, but the users aren't aware because the '12 hour flag' is a hardcoded value.


      Is there a way to do this better?  Assuming some kind of pre-saving of the results is desirable, is there a way to let the system know if/when reload has/hasn't occurred, so the stale flag can be dynamic?