code: private Indexer getDefaultIndexer(Field field) {
      Type type = field.getGenericType();
      if (type instanceof Class && type.equals(String.class)) {
        return getIndexer(LowerCaseStringIndexer.class);
      } else if (type instanceof ParameterizedType) {
        ParameterizedType parameterizedType = (ParameterizedType) type;
        Class<?> rawType = (Class<?>) parameterizedType.getRawType();
        if (List.class.isAssignableFrom(rawType) || Set.class.isAssignableFrom(rawType)) {
          Class<?>[] collectionType = IntrospectionUtils.resolveCollectionType(type);
          if (String.class.equals(collectionType[1])) {
            return getIndexer(LowerCaseStringListIndexer.class);
          }
        }
      }
      String message = String.format("No default indexer found for field %s in class %s",
          field.getName(), field.getDeclaringClass().getName());
      throw new NoSuitableIndexerException(message);
    }
docs: Returns the default indexer for the given field.
  
  @param field
  the field.
  @return the default indexer.