core/src/main/java/com/orientechnologies/orient/core/index/OIndexFullText.java
@Override
  public boolean remove(Object key, final OIdentifiable value) {
    if (key == null) {
      return false;
    }

    key = getCollatingValue(key);

    final Set<String> words = splitIntoWords(key.toString());
    final OModifiableBoolean removed = new OModifiableBoolean(false);

    for (final String word : words) {
      acquireSharedLock();
      try {
        if (apiVersion == 0) {
          removeV0(value, removed, word);
        } else if (apiVersion == 1) {
          removeV1(value, removed, word);
        } else {
          throw new IllegalStateException("Invalid API version, " + apiVersion);
        }
      } finally {
        releaseSharedLock();
      }
    }

    return removed.getValue();
  }
@Override
  public boolean remove(Object key, final OIdentifiable value) {
    if (key == null) {
      return false;
    }

    key = getCollatingValue(key);

    final Set<String> words = splitIntoWords(key.toString());
    final OModifiableBoolean removed = new OModifiableBoolean(false);

    for (final String word : words) {
      acquireSharedLock();
      try {
        if (apiVersion == 0) {
          removeV0(value, removed, word);
        } else if (apiVersion == 1) {
          removeV1(value, removed, word);
        } else {
          throw new IllegalStateException("Invalid API version, " + apiVersion);
        }
      } finally {
        releaseSharedLock();
      }
    }

    return removed.getValue();
  }
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 key   Key to remove.
@param value Value to remove.

@return <code>true</code> if at least one record is removed.