While working in
STANBOL-1447 i recognized that the current workflow of dealing with the Solr Index configuration of the FST linking engine is flawed.
Currently the IndexConfiguration is created on every update of the Engine and on update to the SolrCore registration. On such updates the configuration of the engine is used to inspect the SolrCore to find FST configurations for different languages.
As language specific values are typically stored in dynamic fields those information are only available if the Solr index contains a document that has a value of that field. (e.g. German will only be available after a document with a German label was added to the SolrCore).
So when you start with an empty SolrIndex (typically when using an Entityhub Managed Site) when starting the FST linking engine no single FST corpus will be available (as the Solr Core is empty). This means that the IndexConfiguration will be empty.
When adding Documents to the Solr Core (e.g. by uploading Entities to the Entityhub Managed Site) the IndexConfiguration will not be updated (as neither the Engine nor the SolrCore will be updated). So requests to the FST Linking Engine will not use the new data in the SolrCore for linking (as the Engine believes that the Index does not provide FST models for any language).
To solve this issue one needs to
- let the IndexConfiguration know based on what Solr index version it was built
- for every call to the FST linking engine one needs to check if the Solr index version was updated
- update the IndexConfiguration if the version of the Solr index has changed.