code: @Override
    public boolean remove(final Object iKey, final OIdentifiable value) {
  
      modificationLock.requestModificationLock();
  
      try {
        final List<String> words = splitIntoWords(iKey.toString());
        boolean removed = false;
  
        for (final String word : words) {
          acquireExclusiveLock();
          try {
  
            final Set<OIdentifiable> recs = map.get(word);
            if (recs != null && !recs.isEmpty()) {
              if (recs.remove(value)) {
                if (recs.isEmpty())
                  map.remove(word);
                else
                  map.put(word, recs);
                removed = true;
              }
            }
          } finally {
            releaseExclusiveLock();
          }
        }
  
        return removed;
      } finally {
        modificationLock.releaseModificationLock();
      }
    }
docs: Splits passed in key on several words and remove records with keys equals to any item of split result and values equals to
  passed in value.
  
  @param iKey
  Key to remove.
  @param value
  Value to remove.
  @return <code>true</code> if at least one record is removed.