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