Class: Ferret::Search::DefaultSimilarity

Inherits:
Similarity
  • Object
show all
Defined in:
lib/ferret/search/similarity.rb

Overview

Expert: Default scoring implementation.

Constant Summary

Constants inherited from Similarity

Similarity::NORM_TABLE

Instance Method Summary collapse

Methods inherited from Similarity

byte_to_float, decode_norm, #decode_norm, default, default=, encode_norm, #encode_norm, float_to_byte, #idf_phrase, #idf_term

Instance Method Details

#coord(overlap, max_overlap) ⇒ Object

See source



261
262
263
# File 'lib/ferret/search/similarity.rb', line 261

def coord(overlap, max_overlap)
  return overlap.to_f / max_overlap
end

#idf(doc_freq, num_docs) ⇒ Object

See source



255
256
257
258
# File 'lib/ferret/search/similarity.rb', line 255

def idf(doc_freq, num_docs)
  return 0.0 if num_docs == 0
  return Math.log(num_docs.to_f/(doc_freq+1)) + 1.0
end

#length_norm(field, num_terms) ⇒ Object

See source



235
236
237
# File 'lib/ferret/search/similarity.rb', line 235

def length_norm(field, num_terms)
  return 1.0 / Math.sqrt(num_terms)
end

#query_norm(sum_of_squared_weights) ⇒ Object

See source



240
241
242
# File 'lib/ferret/search/similarity.rb', line 240

def query_norm(sum_of_squared_weights)
  return 1.0 / Math.sqrt(sum_of_squared_weights)
end

#sloppy_freq(distance) ⇒ Object

See source



250
251
252
# File 'lib/ferret/search/similarity.rb', line 250

def sloppy_freq(distance)
  return 1.0 / (distance + 1)
end

#tf(freq) ⇒ Object

See source



245
246
247
# File 'lib/ferret/search/similarity.rb', line 245

def tf(freq)
  return Math.sqrt(freq)
end