Sha256: e28e1e75cae55aa3cae7ca28018e80199e003ad9241afaab1c5daedb1ca36d59

Contents?: true

Size: 1.06 KB

Versions: 17

Compression:

Stored size: 1.06 KB

Contents

module Ddr::Index
  class QueryClause

    PRESENT = "[* TO *]"
    TERM = "{!term f=%s}%s"
    BEFORE_DAYS = "[* TO NOW-%sDAYS]"

    class << self
      # Standard Solr query, no escaping applied
      def build(field, value)
        [field, value].join(":")
      end

      def unique_key(value)
        term(UniqueKeyField.instance, value)
      end
      alias_method :id, :unique_key
      alias_method :pid, :unique_key

      def negative(field, value)
        build "-#{field}", value
      end

      def present(field)
        build field, PRESENT
      end

      def absent(field)
        negative field, PRESENT
      end

      def or_values(field, *values)
        build field, QueryValue.or_values(*values)
      end

      def before(field, date_time)
        value = "[* TO %s]" % Ddr::Utils.solr_date(date_time)
        build field, value
      end

      def before_days(field, days)
        value = BEFORE_DAYS % days.to_i
        build field, value
      end

      def term(field, value)
        TERM % [field, value.gsub(/"/, '\"')]
      end
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
ddr-models-3.0.0.beta.3 lib/ddr/index/query_clause.rb
ddr-models-3.0.0.beta.2 lib/ddr/index/query_clause.rb
ddr-models-2.3.2 lib/ddr/index/query_clause.rb
ddr-models-3.0.0.beta.1 lib/ddr/index/query_clause.rb
ddr-models-2.3.1 lib/ddr/index/query_clause.rb
ddr-models-3.0.0.alpha.4 lib/ddr/index/query_clause.rb
ddr-models-3.0.0.alpha.3 lib/ddr/index/query_clause.rb
ddr-models-2.3.0 lib/ddr/index/query_clause.rb
ddr-models-3.0.0.alpha.2 lib/ddr/index/query_clause.rb
ddr-models-3.0.0.alpha.1 lib/ddr/index/query_clause.rb
ddr-models-2.2.0 lib/ddr/index/query_clause.rb
ddr-models-2.1.3 lib/ddr/index/query_clause.rb
ddr-models-2.1.2 lib/ddr/index/query_clause.rb
ddr-models-2.1.1 lib/ddr/index/query_clause.rb
ddr-models-2.1.0 lib/ddr/index/query_clause.rb
ddr-models-2.1.0.rc2 lib/ddr/index/query_clause.rb
ddr-models-2.1.0.rc1 lib/ddr/index/query_clause.rb