xapian_db 1.2.2 → 1.2.2.1
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.
- data/CHANGELOG.md +8 -0
- data/lib/type_codec.rb +1 -0
- data/lib/xapian_db/adapters/active_record_adapter.rb +3 -1
- data/lib/xapian_db/adapters/datamapper_adapter.rb +3 -0
- data/lib/xapian_db/config.rb +8 -1
- data/lib/xapian_db/index_writers/direct_writer.rb +1 -4
- data/lib/xapian_db.rb +0 -12
- metadata +20 -20
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
##1.2.2.1 (November 22th, 2011)
|
2
|
+
|
3
|
+
Fixes:
|
4
|
+
|
5
|
+
- always use the correct table name for order clauses when indexing
|
6
|
+
- allow nil values for attributes declared :as => :date
|
7
|
+
- lazy load queue writers (beanstalk_writer, resque_writer) when needed
|
8
|
+
|
1
9
|
##1.2.2 (November 15th, 2011)
|
2
10
|
|
3
11
|
Features:
|
data/lib/type_codec.rb
CHANGED
@@ -40,10 +40,12 @@ module XapianDb
|
|
40
40
|
"#{self.class}-#{self.id}"
|
41
41
|
end
|
42
42
|
|
43
|
+
def order_condition(primary_key)
|
44
|
+
'%s.%s' % [self.table_name, primary_key]
|
45
|
+
end
|
43
46
|
end
|
44
47
|
|
45
48
|
klass.class_eval do
|
46
|
-
|
47
49
|
# add the after commit logic
|
48
50
|
after_commit do
|
49
51
|
XapianDb.reindex(self)
|
data/lib/xapian_db/config.rb
CHANGED
@@ -93,9 +93,16 @@ module XapianDb
|
|
93
93
|
# @param [Symbol] type The writer type; the following adapters are available:
|
94
94
|
# - :direct ({XapianDb::IndexWriters::DirectWriter})
|
95
95
|
# - :beanstalk ({XapianDb::IndexWriters::BeanstalkWriter})
|
96
|
+
# - :resque ({XapianDb::IndexWriters::ResqueWriter})
|
96
97
|
def writer(type)
|
97
98
|
# We try to guess the writer name
|
98
|
-
|
99
|
+
begin
|
100
|
+
require File.dirname(__FILE__) + "/index_writers/#{type}_writer"
|
101
|
+
@_writer = XapianDb::IndexWriters.const_get("#{camelize(type.to_s)}Writer")
|
102
|
+
rescue LoadError
|
103
|
+
puts "XapianDb: cannot load #{type} writer; see README for supported writers and how to install neccessary queue infrastructure"
|
104
|
+
raise
|
105
|
+
end
|
99
106
|
end
|
100
107
|
|
101
108
|
# Set the url and port of the beanstalk daemon
|
@@ -67,10 +67,8 @@ module XapianDb
|
|
67
67
|
|
68
68
|
# Process the objects in batches to reduce the memory footprint
|
69
69
|
nr_of_batches = (obj_count / BATCH_SIZE) + 1
|
70
|
-
order_expression = "#{klass.name.parameterize.tableize}.#{primary_key}"
|
71
|
-
# raise "vor loop"
|
72
70
|
nr_of_batches.times do |batch|
|
73
|
-
base_query.all(:offset => batch * BATCH_SIZE, :limit => BATCH_SIZE, :order =>
|
71
|
+
base_query.all(:offset => batch * BATCH_SIZE, :limit => BATCH_SIZE, :order => klass.order_condition(primary_key)).each do |obj|
|
74
72
|
reindex obj, false
|
75
73
|
pbar.inc if show_progressbar
|
76
74
|
end
|
@@ -78,7 +76,6 @@ module XapianDb
|
|
78
76
|
XapianDb.database.commit
|
79
77
|
true
|
80
78
|
end
|
81
|
-
|
82
79
|
end
|
83
80
|
end
|
84
81
|
end
|
data/lib/xapian_db.rb
CHANGED
@@ -19,18 +19,6 @@ files.each {|file| require file}
|
|
19
19
|
# Configure XapianDB if we are in a Rails app
|
20
20
|
require File.dirname(__FILE__) + '/xapian_db/railtie' if defined?(Rails)
|
21
21
|
|
22
|
-
# Try to require the beanstalk writer (depends on beanstalk-client)
|
23
|
-
begin
|
24
|
-
require File.dirname(__FILE__) + '/xapian_db/index_writers/beanstalk_writer'
|
25
|
-
rescue LoadError
|
26
|
-
end
|
27
|
-
|
28
|
-
# Try to require the resque writer (depends on resque)
|
29
|
-
begin
|
30
|
-
require File.dirname(__FILE__) + '/xapian_db/index_writers/resque_writer'
|
31
|
-
rescue LoadError
|
32
|
-
end
|
33
|
-
|
34
22
|
module XapianDb
|
35
23
|
|
36
24
|
# Supported languages
|
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.2.2
|
4
|
+
version: 1.2.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-21 00:00:00.000000000 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: daemons
|
17
|
-
requirement: &
|
17
|
+
requirement: &70313010336720 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.0.10
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70313010336720
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: xapian-ruby
|
28
|
-
requirement: &
|
28
|
+
requirement: &70313010336000 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.2.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70313010336000
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: guard
|
39
|
-
requirement: &
|
39
|
+
requirement: &70313010335340 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70313010335340
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
|
-
requirement: &
|
50
|
+
requirement: &70313010334460 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 2.3.1
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70313010334460
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: simplecov
|
61
|
-
requirement: &
|
61
|
+
requirement: &70313010333480 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.3.7
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70313010333480
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: beanstalk-client
|
72
|
-
requirement: &
|
72
|
+
requirement: &70313010348960 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 1.1.0
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70313010348960
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: rake
|
83
|
-
requirement: &
|
83
|
+
requirement: &70313010348120 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70313010348120
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: progressbar
|
94
|
-
requirement: &
|
94
|
+
requirement: &70313010347420 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70313010347420
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: resque
|
105
|
-
requirement: &
|
105
|
+
requirement: &70313010346180 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,7 +110,7 @@ dependencies:
|
|
110
110
|
version: 1.19.0
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70313010346180
|
114
114
|
description: XapianDb is a ruby gem that combines features of nosql databases and
|
115
115
|
fulltext indexing. It is based on Xapian, an efficient and powerful indexing library
|
116
116
|
email: gernot.kogler (at) garaio (dot) com
|