        :case-sensitive? (not= "true" (get-in options [param :ignore-case]))
        :pattern? (= "true" (get-in options [param :pattern]))})))
 
+;; Construct an inheritance query condition for granules.
+;; This query needs to respect the inheritance of its dataset's corresponding fields.
+(defmethod parameter->condition :inheritance
+  [concept-type param value options]
+  (let [field-condition (parameter->condition :collection param value options)]
+    (qm/or-conds
+      [field-condition
+       (qm/and-conds
+         [(qm/->CollectionQueryCondition field-condition)
+          (qm/map->MissingCondition {:field (q2e/query-field->elastic-field param concept-type)})])])))
 
 (defmethod parameter->condition :updated-since
   [concept-type param value options]

  (:require [clojure.set :as set]
            [cmr.common.services.errors :as errors]
            [cmr.search.models.query :as qm]
            [cmr.common.date-time-parser :as dt-parser]
            [cmr.common.util :as u]))


             :version :collection-query
             :updated-since :updated-since
             :temporal :temporal
             :platform :inheritance
             :instrument :inheritance
             :sensor :inheritance
             :project :string
             :cloud-cover :num-range
             :concept-id :string
