A hierarchical request is one that looks like it might result in a cachable response, and therefore might be cached by one of Squid’s neighbors. If your Squid doesn’t have any neighbors, you don’t need to worry about this directive.
By default, Squid prefers to skip the neighbor selection step for nonhierarchical requests (uncachable responses) because the request probably won’t result in a cache hit. You can reverse this behavior by disabling the nonhierarchical_direct directive. See Section 10.10.
prefer_direct, never_direct, always_direct