Yes, that's a real screenshot after 10 years of unsupervised plone usage of the "Subject" field.
I'm slightly re-imagining the interface for Products.PloneKeywordManager so we can get a handle on this.
It's a work in progress at the moment.
I have an opinion that if we add pagination to the keyword list we can get rid of the "View Range" filter on the keyword manager form. But if anyone is using it and has a different opinion, let me know.
We use it (read: my customers) and they are happy about the feature but are also not that happy with the UI. It would be great if this gets improved.
Btw. This add-on is one of the real old ones, dating back to Plone 1.0 times, created at Education Sprint in Paderborn 2003 (I attended but was not involved). The point is, the UI hadn't changed that much since then. Rethinking it would be awesome.
In that image above, we had 121976 objects with an empty string ( '' ) keyword in the index.
I just used the interface to delete that keyword.
It took some time (somewhere under 9 minutes on a slow dev environment, but it completed without conflict error)
Not sure about using it in a production environment while users are editing content, but the code seems to implement a single transaction for each object. Slower, but safer I think.
for item in querySet:
obj = item.getObject()
value = self.getFieldValue(obj, indexName)
...
updateField = self.getSetter(obj, indexName)
if updateField is not None:
updateField(value)
idxs = self._getFullIndexList(indexName)
obj.reindexObject(idxs=idxs)