docs: public static boolean matches(final String query, final IPortletDefinition portlet) {
          /*
           * The query parameter is coming in lower case always (even when upper
           * or mixed case is entered by the user).  We really want a case-
           * insensitive comparison here anyway;  for safety, we will make certain
           * it is insensitive.
           */
          final String lcQuery = query.toLowerCase();
          final boolean titleMatch = portlet.getTitle().toLowerCase().contains(lcQuery);
          final boolean nameMatch = portlet.getName().toLowerCase().contains(lcQuery);
          final boolean descMatch =
                  portlet.getDescription() != null
                          && portlet.getDescription().toLowerCase().contains(lcQuery);
          final boolean fnameMatch = portlet.getFName().toLowerCase().contains(lcQuery);
          return titleMatch || nameMatch || descMatch || fnameMatch;
      }