private void parse(@NotNull String query) {
      List<String> words = splitQuery(query);
      int size = words.size();

      if (size == 0) {
        return;
      }
      if (size == 1) {
        addToSearchQuery(words.get(0));
        return;
      }

      int index = 0;
      while (index < size) {
        String name = words.get(index++);
        if (name.endsWith(":")) {
          if (index < size) {
            handleAttribute(name, words.get(index++));
          }
          else {
            addToSearchQuery(query);
            return;
          }
        }
        else {
          addToSearchQuery(name);
        }
      }
    }
private void parse(@NotNull String query)