ensure_job_index_exists

in lib/core/elastic_connector_actions.rb [466:536]


      def ensure_job_index_exists
        mappings = {
          :dynamic => false,
          :properties => {
            :cancelation_requested_at => { :type => :date },
            :canceled_at => { :type => :date },
            :completed_at => { :type => :date },
            :connector => {
              :properties => {
                :configuration => { :type => :object },
                :filtering => {
                  :properties => {
                    :domain => { :type => :keyword },
                    :rules => {
                      :properties => {
                        :id => { :type => :keyword },
                        :policy => { :type => :keyword },
                        :field => { :type => :keyword },
                        :rule => { :type => :keyword },
                        :value => { :type => :keyword },
                        :order => { :type => :short },
                        :created_at => { :type => :date },
                        :updated_at => { :type => :date }
                      }
                    },
                    :advanced_snippet => {
                      :properties => {
                        :value => { :type => :object },
                        :created_at => { :type => :date },
                        :updated_at => { :type => :date }
                      }
                    },
                    :warnings => {
                      :properties => {
                        :ids => { :type => :keyword },
                        :messages => { :type => :text }
                      }
                    }
                  }
                },
                :id => { :type => :keyword },
                :index_name => { :type => :keyword },
                :language => { :type => :keyword },
                :pipeline => {
                  :properties => {
                    :extract_binary_content => { :type => :boolean },
                    :name => { :type => :keyword },
                    :reduce_whitespace => { :type => :boolean },
                    :run_ml_inference => { :type => :boolean }
                  }
                },
                :service_type => { :type => :keyword }
              }
            },
            :created_at => { :type => :date },
            :deleted_document_count => { :type => :integer },
            :error => { :type => :text },
            :indexed_document_count => { :type => :integer },
            :indexed_document_volume => { :type => :integer },
            :last_seen => { :type => :date },
            :metadata => { :type => :object },
            :started_at => { :type => :date },
            :status => { :type => :keyword },
            :total_document_count => { :type => :integer },
            :trigger_method => { :type => :keyword },
            :worker_hostname => { :type => :keyword }
          }
        }
        ensure_index_exists("#{Utility::Constants::JOB_INDEX}-v1", system_index_body(:alias_name => Utility::Constants::JOB_INDEX, :mappings => mappings))
      end