diff --git a/src/Products/PluginIndexes/KeywordIndex/KeywordIndex.py b/src/Products/PluginIndexes/KeywordIndex/KeywordIndex.py index c8f7f86b..692566f9 100644 --- a/src/Products/PluginIndexes/KeywordIndex/KeywordIndex.py +++ b/src/Products/PluginIndexes/KeywordIndex/KeywordIndex.py @@ -156,23 +156,22 @@ def _getSpecialValueFor(datum): except KeyError: pass + keywords = OOSet() # normalize datum if isinstance(newKeywords, basestring): - newKeywords = (newKeywords,) + keywords.insert(newKeywords) else: try: # unique - newKeywords = set(newKeywords) + keywords.update(newKeywords) except TypeError: # Not a sequence - newKeywords = (newKeywords,) - else: - newKeywords = tuple(newKeywords) + keywords.insert(newKeywords) try: - return _getSpecialValueFor(newKeywords) + return _getSpecialValueFor(tuple(keywords)) except KeyError: - return newKeywords + return keywords def index_objectKeywords(self, documentId, keywords): """ carefully index the object with integer id 'documentId'"""