xapian_db 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,10 @@
1
+ ##1.3.2 (April 10th, 2013)
2
+
3
+ Changes:
4
+
5
+ - new no_split option for attributes and indexes; useful if you use a global term_splitter_count but want to disable splitting for
6
+ a certain attribute
7
+
1
8
  ##1.3.1 (February 25th, 2013)
2
9
 
3
10
  Fixes:
@@ -173,6 +173,12 @@ If you use associations in your blueprints, it might be a good idea to specify a
173
173
  blueprint.base_query { |p| p.includes(:addresses) }
174
174
  end
175
175
 
176
+ If you have configured a term_splitter_count, you might want to exclude certain attributes from the automatic term splitting:
177
+
178
+ XapianDb::DocumentBlueprint.setup(:Person) do |blueprint|
179
+ blueprint.attribute :age, :as => :number, :no_split => true
180
+ end
181
+
176
182
  You can specify a natural sort order for each class using a method symbol or a block. If you don't specify an order expression in your xapian query, the matches
177
183
  are ordered by relevance and - within the same relevance - by the natural sort order. If you don't specify the natural sort order, it defaults to id. Examples:
178
184
 
@@ -362,7 +362,7 @@ module XapianDb
362
362
  # Is it a method name with options?
363
363
  if args.last.is_a? Hash
364
364
  options = args.last
365
- assert_valid_keys options, :weight, :prefixed
365
+ assert_valid_keys options, :weight, :prefixed, :no_split
366
366
  @indexed_methods_hash[args.first] = IndexOptions.new(options.merge(:block => block))
367
367
  else
368
368
  add_indexes_from args
@@ -403,7 +403,7 @@ module XapianDb
403
403
  # Options for an indexed method
404
404
  class IndexOptions
405
405
 
406
- attr_reader :weight, :prefixed, :block
406
+ attr_reader :weight, :prefixed, :no_split, :block
407
407
 
408
408
  # Constructor
409
409
  # @param [Hash] options
@@ -411,6 +411,7 @@ module XapianDb
411
411
  def initialize(options = {})
412
412
  @weight = options[:weight] || 1
413
413
  @prefixed = options[:prefixed].nil? ? true : options[:prefixed]
414
+ @no_split = options[:no_split]
414
415
  @block = options[:block]
415
416
  end
416
417
 
@@ -86,7 +86,7 @@ module XapianDb
86
86
  values = get_values_to_index_from obj
87
87
  values.each do |value|
88
88
  terms = value.to_s.downcase
89
- terms = split(terms) if XapianDb::Config.term_splitter_count > 0
89
+ terms = split(terms) if XapianDb::Config.term_splitter_count > 0 && !options.no_split
90
90
  # Add value with field name
91
91
  term_generator.index_text(terms, options.weight, "X#{method.upcase}") if options.prefixed
92
92
  # Add value without field name
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xapian_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-25 00:00:00.000000000 Z
12
+ date: 2013-04-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: daemons
@@ -246,7 +246,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
246
246
  version: '0'
247
247
  segments:
248
248
  - 0
249
- hash: -2796232478474522609
249
+ hash: -1707289322926959795
250
250
  required_rubygems_version: !ruby/object:Gem::Requirement
251
251
  none: false
252
252
  requirements: