If you have programmatic access to external content, you can trigger indexing of a content item when the item is updated or deleted from a workspace.
The following sample illustrates how to raise events that trigger an index update.
public class IndexExternalContent { public void onContentUpdate(String moduleTemplateID) { try { // Get content provider events IContentProviderEvents contentProviderEvents = (IContentProviderEvents) RuntimeFactory.getWorkspacesRuntime().getService(IContentProviderEvents.class); //Raise an event when the content item is updated contentProviderEvents.contentUpdated( moduleTemplateID, getProviderID() ); } catch (Exception e) { // Error occurred } } public void onContentDelete(String moduleTemplateID) { try { // Get content provider events IContentProviderEvents contentProviderEvents = (IContentProviderEvents) RuntimeFactory.getWorkspacesRuntime().getService(IContentProviderEvents.class); //Raise an event when the content item is deleted contentProviderEvents.contentDeleted( moduleTemplateID, getProviderID() ); } catch (Exception e) { // Error occurred } } private String getProviderID() { AbstractContentProvider contentProvider = (AbstractContentProvider) PortalRuntime.getRuntimeResources().getService("custom_content_provider_service_impl_key"); return contentProvider.getID(); } }