Detect Sitecore document changes with Incremental or Full Refresh for Sitecore indexes
How does Coveo decide if a document from Sitecore has changed when running an incremental or full refresh?
Coveo for Sitecore does not work like other Coveo connectors.
Normal connectors will pull the data from a source whilst Coveo for Sitecore will push, hence the usual Coveo concept of
full refresh does not really apply to Coveo for Sitecore.
Sitecore provides an API for indexes, the Content Search API. They also provide an implementation of this API for Lucene, Solr and, since ~1 month, Azure Search.
The Coveo implementation is no different from the ones provided by Sitecore. Coveo implements the Sitecore provided interfaces and Sitecore sends what has to be indexed/updated to Coveo.
To answer your question: Coveo does not decide if a document from Sitecore has changed, Sitecore does. Then, for a specific item, Coveo will update the modified metadata. More on that here.
From a Rebuild perspective, Coveo will update all items provided by Sitecore and will then delete the items that have not been updated.