Sha256: e33b51b1ecc78f0e6c0af933942632f2acb36cc92e7c630071a61b3fa76c0ce6

Contents?: true

Size: 1007 Bytes

Versions: 10

Compression:

Stored size: 1007 Bytes

Contents

module MarkLogic
  module Queries
    class NearQuery< BaseQuery
      def initialize(queries, distance = 10, distance_weight = 1.0, options = {})
        @queries = queries
        @distance = distance
        @distance_weight = distance_weight
        @ordered = options.delete(:ordered)
      end

      def to_json
        json = {
          "near-query" => {
            "queries" => @queries.map { |q| q.to_json }
          }
        }

        json["near-query"]["queries"].push({ "distance" => @distance }) if @distance
        json["near-query"]["queries"].push({ "distance-weight" => @distance_weight }) if @distance_weight
        json["near-query"]["queries"].push({ "ordered" => @ordered })
        json
      end

      def to_xqy
        queries = @queries.map { |q| q.to_xqy }.join(',')
        ordered = (@ordered == true ? %Q{"ordered"} : %Q{"unordered"}) if !@ordered.nil?
        %Q{cts:near-query((#{queries}),#{@distance},(#{ordered}),#{@distance_weight})}
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
marklogic-0.0.11 lib/marklogic/queries/near_query.rb
marklogic-0.0.10 lib/marklogic/queries/near_query.rb
marklogic-0.0.9 lib/marklogic/queries/near_query.rb
marklogic-0.0.8 lib/marklogic/queries/near_query.rb
marklogic-0.0.7 lib/marklogic/queries/near_query.rb
marklogic-0.0.6 lib/marklogic/queries/near_query.rb
marklogic-0.0.5 lib/marklogic/queries/near_query.rb
marklogic-0.0.4 lib/marklogic/queries/near_query.rb
marklogic-0.0.3 lib/marklogic/queries/near_query.rb
marklogic-0.0.1 lib/marklogic/queries/near_query.rb