docs: @Override
      protected Long doBase(String name, Object value) {
          if (value instanceof Number) {
              return ((Number) value).longValue();
          } else if (value instanceof Date) {
              return ((Date) value).getTime();
          } else if (value instanceof String) {
              try {
                  return Double.valueOf((String) value).longValue();
              } catch (NumberFormatException e) {
                  throw new IndexException("Field '{}' with value '{}' can not be parsed as long", name, value);
              }
          }
          throw new IndexException("Field '{}' requires a long, but found '{}'", name, value);
      }