xapian-fu 1.0.1 → 1.1.0

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.
Files changed (63) hide show
  1. data/README.rdoc +2 -0
  2. data/examples/spider.rb +3 -3
  3. data/lib/xapian-fu.rb +1 -0
  4. data/lib/xapian_fu/xapian_db.rb +2 -2
  5. data/lib/xapian_fu/xapian_doc_value_accessor.rb +40 -24
  6. data/lib/xapian_fu/xapian_documents_accessor.rb +2 -2
  7. data/spec/build_db_for_value_testing.rb +24 -0
  8. data/spec/fixtures/film_data/i486-linux~1.8.7/flintlock +0 -0
  9. data/spec/fixtures/film_data/i486-linux~1.8.7/iamflint +0 -0
  10. data/spec/fixtures/film_data/i486-linux~1.8.7/position.DB +0 -0
  11. data/spec/fixtures/film_data/i486-linux~1.8.7/position.baseA +0 -0
  12. data/spec/fixtures/film_data/i486-linux~1.8.7/position.baseB +0 -0
  13. data/spec/fixtures/film_data/i486-linux~1.8.7/postlist.DB +0 -0
  14. data/spec/fixtures/film_data/i486-linux~1.8.7/postlist.baseA +0 -0
  15. data/spec/fixtures/film_data/i486-linux~1.8.7/postlist.baseB +0 -0
  16. data/spec/fixtures/film_data/i486-linux~1.8.7/record.DB +0 -0
  17. data/spec/fixtures/film_data/i486-linux~1.8.7/record.baseA +0 -0
  18. data/spec/fixtures/film_data/i486-linux~1.8.7/record.baseB +0 -0
  19. data/spec/fixtures/film_data/i486-linux~1.8.7/termlist.DB +0 -0
  20. data/spec/fixtures/film_data/i486-linux~1.8.7/termlist.baseA +0 -0
  21. data/spec/fixtures/film_data/i486-linux~1.8.7/termlist.baseB +0 -0
  22. data/spec/fixtures/film_data/i486-linux~1.8.7/value.DB +0 -0
  23. data/spec/fixtures/film_data/i486-linux~1.8.7/value.baseA +0 -0
  24. data/spec/fixtures/film_data/i486-linux~1.8.7/value.baseB +0 -0
  25. data/spec/fixtures/film_data/x86_64-linux~1.8.7/flintlock +0 -0
  26. data/spec/fixtures/film_data/x86_64-linux~1.8.7/iamflint +0 -0
  27. data/spec/fixtures/film_data/x86_64-linux~1.8.7/position.DB +0 -0
  28. data/spec/fixtures/film_data/x86_64-linux~1.8.7/position.baseA +0 -0
  29. data/spec/fixtures/film_data/x86_64-linux~1.8.7/position.baseB +0 -0
  30. data/spec/fixtures/film_data/x86_64-linux~1.8.7/postlist.DB +0 -0
  31. data/spec/fixtures/film_data/x86_64-linux~1.8.7/postlist.baseA +0 -0
  32. data/spec/fixtures/film_data/x86_64-linux~1.8.7/postlist.baseB +0 -0
  33. data/spec/fixtures/film_data/x86_64-linux~1.8.7/record.DB +0 -0
  34. data/spec/fixtures/film_data/x86_64-linux~1.8.7/record.baseA +0 -0
  35. data/spec/fixtures/film_data/x86_64-linux~1.8.7/record.baseB +0 -0
  36. data/spec/fixtures/film_data/x86_64-linux~1.8.7/termlist.DB +0 -0
  37. data/spec/fixtures/film_data/x86_64-linux~1.8.7/termlist.baseA +0 -0
  38. data/spec/fixtures/film_data/x86_64-linux~1.8.7/termlist.baseB +0 -0
  39. data/spec/fixtures/film_data/x86_64-linux~1.8.7/value.DB +0 -0
  40. data/spec/fixtures/film_data/x86_64-linux~1.8.7/value.baseA +0 -0
  41. data/spec/fixtures/film_data/x86_64-linux~1.8.7/value.baseB +0 -0
  42. data/spec/fixtures/film_data/x86_64-linux~1.9.1/flintlock +0 -0
  43. data/spec/fixtures/film_data/x86_64-linux~1.9.1/iamflint +0 -0
  44. data/spec/fixtures/film_data/x86_64-linux~1.9.1/position.DB +0 -0
  45. data/spec/fixtures/film_data/x86_64-linux~1.9.1/position.baseA +0 -0
  46. data/spec/fixtures/film_data/x86_64-linux~1.9.1/position.baseB +0 -0
  47. data/spec/fixtures/film_data/x86_64-linux~1.9.1/postlist.DB +0 -0
  48. data/spec/fixtures/film_data/x86_64-linux~1.9.1/postlist.baseA +0 -0
  49. data/spec/fixtures/film_data/x86_64-linux~1.9.1/postlist.baseB +0 -0
  50. data/spec/fixtures/film_data/x86_64-linux~1.9.1/record.DB +0 -0
  51. data/spec/fixtures/film_data/x86_64-linux~1.9.1/record.baseA +0 -0
  52. data/spec/fixtures/film_data/x86_64-linux~1.9.1/record.baseB +0 -0
  53. data/spec/fixtures/film_data/x86_64-linux~1.9.1/termlist.DB +0 -0
  54. data/spec/fixtures/film_data/x86_64-linux~1.9.1/termlist.baseA +0 -0
  55. data/spec/fixtures/film_data/x86_64-linux~1.9.1/termlist.baseB +0 -0
  56. data/spec/fixtures/film_data/x86_64-linux~1.9.1/value.DB +0 -0
  57. data/spec/fixtures/film_data/x86_64-linux~1.9.1/value.baseA +0 -0
  58. data/spec/fixtures/film_data/x86_64-linux~1.9.1/value.baseB +0 -0
  59. data/spec/fixtures/film_data.rb +5 -0
  60. data/spec/stopper_factory_spec.rb +1 -0
  61. data/spec/xapian_doc_spec.rb +2 -1
  62. data/spec/xapian_doc_value_accessor_spec.rb +50 -11
  63. metadata +56 -2
data/README.rdoc CHANGED
@@ -32,6 +32,8 @@ added to a Xapian database.
32
32
  Create a database, add 3 documents to it and then search and retrieve
33
33
  them.
34
34
 
35
+ require 'xapian-fu'
36
+ include XapianFu
35
37
  db = XapianDb.new(:dir => 'example.db', :create => true,
36
38
  :store => [:title, :year])
37
39
  db << { :title => 'Brokeback Mountain', :year => 2005 }
data/examples/spider.rb CHANGED
@@ -8,7 +8,7 @@ require 'rubygems'
8
8
  require 'benchmark'
9
9
  require 'lib/xapian_fu'
10
10
 
11
- db = XapianFu::XapianDb.new(:dir => 'spider.db', :store => [:filename, :filesize],
11
+ db = XapianFu::XapianDb.new(:store => [:filename, :filesize],
12
12
  :overwrite => true)
13
13
 
14
14
  base_path = ARGV[0] || '.'
@@ -31,12 +31,12 @@ while dir = index_queue.shift
31
31
  next
32
32
  end
33
33
  next unless File.file?(filename)
34
- next unless filename =~ /(txt|doc|README|c|h|pl|sh|rb|py|note|xml)$/i
34
+ next unless filename =~ /(txt|doc|README|c|cpp|h|pl|sh|rb|py|note|xml)$/i
35
35
  file_count += 1
36
36
 
37
37
  # Read the first 10k of data
38
38
  text = File.open(filename) { |f| f.read(10 * 1024) }
39
- file_data += text.size
39
+ file_data += text.to_s.size
40
40
  # Index the data, filename and filesize
41
41
  bm = Benchmark.measure do
42
42
  db << {
data/lib/xapian-fu.rb ADDED
@@ -0,0 +1 @@
1
+ require 'xapian_fu'
@@ -196,7 +196,7 @@ module XapianFu #:nodoc:
196
196
  enquiry = Xapian::Enquire.new(ro)
197
197
  setup_ordering(enquiry, options[:order], options[:reverse])
198
198
  if options[:collapse]
199
- enquiry.collapse_key = options[:collapse].to_s.hash
199
+ enquiry.collapse_key = XapianDocValueAccessor.value_key(options[:collapse])
200
200
  end
201
201
  enquiry.query = query
202
202
  ResultSet.new(:mset => enquiry.mset(offset, per_page), :current_page => page + 1,
@@ -268,7 +268,7 @@ module XapianFu #:nodoc:
268
268
  enquiry.sort_by_value!((1 << 32)-1, reverse)
269
269
  enquiry.docid_order = reverse ? Xapian::Enquire::DESCENDING : Xapian::Enquire::ASCENDING
270
270
  elsif order.is_a? String or order.is_a? Symbol
271
- enquiry.sort_by_value!(order.to_s.hash, reverse)
271
+ enquiry.sort_by_value!(XapianDocValueAccessor.value_key(order), reverse)
272
272
  else
273
273
  enquiry.sort_by_relevance!
274
274
  end
@@ -1,55 +1,73 @@
1
+ require 'zlib'
2
+
1
3
  class Integer #:nodoc:
2
- def to_xapian_fu_storage_value
3
- [self].pack("l")
4
+ def self.to_xapian_fu_storage_value(value)
5
+ [value].pack("G")
4
6
  end
5
7
 
6
8
  def self.from_xapian_fu_storage_value(value)
7
- value.unpack("l").first
9
+ value.unpack("G").first.truncate rescue nil
8
10
  end
9
11
  end
10
12
 
11
13
  class Bignum #:nodoc:
12
- def to_xapian_fu_storage_value
13
- [self].pack("G")
14
+ def self.to_xapian_fu_storage_value(value)
15
+ if value > 0x1fffffffffffff or value < -0x1fffffffffffff
16
+ raise XapianFu::ValueOutOfBounds
17
+ end
18
+ [value].pack("G")
14
19
  end
15
20
 
16
21
  def self.from_xapian_fu_storage_value(value)
17
- value.unpack("G").first
22
+ value.unpack("G").first.truncate rescue nil
23
+ end
24
+ end
25
+
26
+ class Fixnum #:nodoc:
27
+ def self.to_xapian_fu_storage_value(value)
28
+ [value].pack("G")
29
+ end
30
+
31
+ def self.from_xapian_fu_storage_value(value)
32
+ value.unpack("G").first.truncate rescue nil
18
33
  end
19
34
  end
20
35
 
21
36
  class Float #:nodoc:
22
- def to_xapian_fu_storage_value
23
- [self].pack("G")
37
+ def self.to_xapian_fu_storage_value(value)
38
+ [value].pack("G")
24
39
  end
25
40
 
26
41
  def self.from_xapian_fu_storage_value(value)
27
- value.unpack("G").first
42
+ value.unpack("G").first rescue nil
28
43
  end
29
44
  end
30
45
 
31
46
  class Time #:nodoc:
32
- def to_xapian_fu_storage_value
33
- [self.utc.to_f].pack("G")
47
+ def self.to_xapian_fu_storage_value(value)
48
+ [value.utc.to_f].pack("G")
34
49
  end
35
50
 
36
51
  def self.from_xapian_fu_storage_value(value)
37
- Time.at(value.unpack("G").first)
52
+ Time.at(value.unpack("G").first) rescue nil
38
53
  end
39
54
  end
40
55
 
41
56
  class Date #:nodoc:
42
- def to_xapian_fu_storage_value
43
- to_s
57
+ def self.to_xapian_fu_storage_value(value)
58
+ value.to_s
44
59
  end
45
60
 
46
61
  def self.from_xapian_fu_storage_value(value)
47
- self.parse(value)
62
+ self.parse(value) rescue nil
48
63
  end
49
64
  end
50
65
 
51
66
  module XapianFu #:nodoc:
52
67
 
68
+ class ValueOutOfBounds < XapianFuError
69
+ end
70
+
53
71
  # A XapianDocValueAccessor is used to provide the XapianDoc#values
54
72
  # interface to read and write field values to a XapianDb. It is
55
73
  # usually set up by a XapianDoc so you shouldn't need to set up your
@@ -67,12 +85,12 @@ module XapianFu #:nodoc:
67
85
  # <tt>from_xapian_fu_storage_value</tt> class method on retrieval.
68
86
  def store(key, value, type = nil)
69
87
  type = @doc.db.fields[key] if type.nil? and @doc.db
70
- if type and value.is_a?(type) and value.respond_to?(:to_xapian_fu_storage_value)
71
- converted_value = value.to_xapian_fu_storage_value
88
+ if type and type.respond_to?(:to_xapian_fu_storage_value)
89
+ converted_value = type.to_xapian_fu_storage_value(value)
72
90
  else
73
91
  converted_value = value.to_s
74
92
  end
75
- @doc.xapian_document.add_value(value_key(key), converted_value)
93
+ @doc.xapian_document.add_value(XapianDocValueAccessor.value_key(key), converted_value)
76
94
  value
77
95
  end
78
96
  alias_method "[]=", :store
@@ -92,7 +110,7 @@ module XapianFu #:nodoc:
92
110
  # Due to the design of Xapian, if the value does not exist then an
93
111
  # empty string is returned.
94
112
  def fetch(key, type = nil)
95
- value = @doc.xapian_document.value(value_key(key))
113
+ value = @doc.xapian_document.value(XapianDocValueAccessor.value_key(key))
96
114
  type = @doc.db.fields[key] if type.nil? and @doc.db
97
115
  if type and type.respond_to?(:from_xapian_fu_storage_value)
98
116
  type.from_xapian_fu_storage_value(value)
@@ -110,16 +128,14 @@ module XapianFu #:nodoc:
110
128
  # Remove the value with the given key from the XapianDoc and return it
111
129
  def delete(key)
112
130
  value = fetch(key)
113
- @doc.xapian_document.remove_value(value_key(key))
131
+ @doc.xapian_document.remove_value(XapianDocValueAccessor.value_key(key))
114
132
  value
115
133
  end
116
134
 
117
- private
118
-
119
135
  # Convert the given key to an integer that can be used as a Xapian
120
136
  # value number
121
- def value_key(key)
122
- key.is_a?(Integer) ? key : key.to_s.hash
137
+ def self.value_key(key)
138
+ (key.is_a?(Integer) ? key : Zlib.crc32(key.to_s))
123
139
  end
124
140
  end
125
141
  end
@@ -70,10 +70,10 @@ module XapianFu
70
70
  find(@xdb.ro.lastdocid) rescue nil
71
71
  else
72
72
  # for other values, we do a search ordered by that key in descening order
73
- query = Xapian::Query.new(Xapian::Query::OP_VALUE_GE, key.to_s.hash, "0")
73
+ query = Xapian::Query.new(Xapian::Query::OP_VALUE_GE, XapianDocValueAccessor.value_key(key), "0")
74
74
  e = Xapian::Enquire.new(@xdb.ro)
75
75
  e.query = query
76
- e.sort_by_value!(key.to_s.hash)
76
+ e.sort_by_value!(XapianDocValueAccessor.value_key(key))
77
77
  r = e.mset(0, 1).matches.first
78
78
  find(r.docid) rescue nil
79
79
  end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+
4
+ require 'date'
5
+ require File.join(File.dirname(__FILE__), '../lib/xapian_fu')
6
+ include XapianFu
7
+ require File.join(File.dirname(__FILE__), 'fixtures/film_data')
8
+ require 'fileutils'
9
+
10
+
11
+ db_name = [RUBY_PLATFORM, RUBY_VERSION].join('~')
12
+ db_path = File.join(File.dirname(__FILE__), 'fixtures/film_data')
13
+ FileUtils.mkdir_p db_path
14
+ db = XapianDb.new(:dir => File.join(db_path, db_name), :create => true,
15
+ :fields => {
16
+ :title => { :type => String, :store => true },
17
+ :released_on => { :type => Date, :store => true },
18
+ :revenue => { :type => Integer, :store => true }})
19
+
20
+
21
+
22
+ FILM_DATA.each { |film| db << film }
23
+
24
+
@@ -0,0 +1,5 @@
1
+
2
+ FILM_DATA = []
3
+ FILM_DATA << { :title => "Cold Mountain", :released_on => Date.parse("2003/12/25"), :revenue => 173_013_509 }
4
+ FILM_DATA << { :title => "Brokeback Mountain", :released_on => Date.parse("2005/12/16"), :revenue => 178_062_759 }
5
+ FILM_DATA << { :title => "Yes Man", :released_on => Date.parse("2008/12/26"), :revenue => 301_455_191 }
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'xapian'
2
3
  require 'lib/xapian_fu.rb'
3
4
  include XapianFu
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'xapian'
2
3
  require 'lib/xapian_fu.rb'
3
4
  include XapianFu
@@ -109,7 +110,7 @@ describe XapianDoc do
109
110
  :french => { "majestueusement" => "majestu" },
110
111
  :swedish => { "kloekornas" => "kloek" },
111
112
  :danish => { "indvendingerne" => "indvending" },
112
- :russian => { "падшую", "падш" },
113
+ :russian => { "падшую" => "падш" },
113
114
  :italian => { "propagamento" => "propag" }
114
115
  }
115
116
  stems.keys.each do |lang|
@@ -2,9 +2,16 @@ require 'xapian'
2
2
  require 'lib/xapian_fu.rb'
3
3
  include XapianFu
4
4
  require 'fileutils'
5
+ require 'fixtures/film_data'
5
6
 
6
7
  describe XapianDocValueAccessor do
7
8
 
9
+ describe "value_key" do
10
+ it "should return the crc32 of the given string" do
11
+ XapianDocValueAccessor.value_key("louisa").should == 4040578532
12
+ end
13
+ end
14
+
8
15
  it "should store and fetch values like a hash" do
9
16
  values = XapianDocValueAccessor.new(XapianDoc.new(nil))
10
17
  values.store(:city, "Leeds").should == "Leeds"
@@ -19,25 +26,38 @@ describe XapianDocValueAccessor do
19
26
  lambda { values[:city] = "London" }.should change(doc.xapian_document, :values_count).by(1)
20
27
  end
21
28
 
22
- it "should store fields defined as Fixnum as packed Long" do
29
+ it "should store fields defined as Fixnum as packed double-precision float, network byte order" do
23
30
  xdb = XapianDb.new(:fields => { :number => { :type => Fixnum, :store => true } })
24
- [-83883, 256532, 0, 0x3fffffff].each do |number|
31
+ [-83883, 256532, 0, 0xffffff].each do |number|
25
32
  doc = xdb.documents.new(:number => number)
26
33
  doc.values.store(:number, number, Fixnum).should == number
27
34
  doc.values.fetch(:number, Fixnum).should == number
28
- doc.to_xapian_document.values.first.value.should == [number].pack("l")
35
+ doc.to_xapian_document.values.first.value.should == [number].pack("G")
29
36
  end
30
37
  end
31
38
 
32
- it "should store fields defined as Bignum as packed Double-precision float, big-endian byte order" do
39
+ it "should store fields defined as Bignum as packed double-precision float, network byte order" do
33
40
  xdb = XapianDb.new(:fields => { :number => { :type => Bignum, :store => true } })
34
- doc = xdb.documents.new(:number => 0x3fffffffffffff)
35
- doc.values.store(:number, 0x3fffffffffffff).should == 0x3fffffffffffff
36
- doc.values.fetch(:number).should == 0x3fffffffffffff
37
- doc.to_xapian_document.values.first.value.should == [0x3fffffffffffff].pack("G")
41
+ [
42
+ (-0x1fffffffffffff..-0x1fffffffffffff + 10).to_a,
43
+ (0x1fffffffffffff-10..0x1fffffffffffff).to_a
44
+ ].flatten.each do |number|
45
+ doc = xdb.documents.new(:number => number)
46
+ doc.values.store(:number, number, Bignum).should == number
47
+ doc.values.fetch(:number, Bignum).should == number
48
+ doc.to_xapian_document.values.first.value.should == [number].pack("G")
49
+ end
50
+ end
51
+
52
+ it "should raise an error when attempting to store Bignum values bigger or smaller than can be stored" do
53
+ xdb = XapianDb.new(:fields => { :number => { :type => Bignum, :store => true } })
54
+ [-(0x1fffffffffffff+1), 0x1fffffffffffff+1].each do |number|
55
+ doc = xdb.documents.new(:number => number)
56
+ lambda { doc.values.store(:number, number, Bignum) }.should raise_error XapianFu::ValueOutOfBounds
57
+ end
38
58
  end
39
59
 
40
- it "should store fields defined as Float as packed Double-precision float, big-endian byte order" do
60
+ it "should store fields defined as Float as packed double-precision float, network byte order" do
41
61
  xdb = XapianDb.new(:fields => { :number => { :type => Float, :store => true } })
42
62
  [-0.303393984588383833, 8.448488388488384, 1.0].each do |number|
43
63
  doc = xdb.documents.new(:number => number)
@@ -47,12 +67,12 @@ describe XapianDocValueAccessor do
47
67
  end
48
68
  end
49
69
 
50
- it "should store fields defined as Time in UTC as packed Double-precision float, big-endian byte order" do
70
+ it "should store fields defined as Time in UTC as packed double-precision float, network byte order" do
51
71
  xdb = XapianDb.new(:fields => { :created_at => { :type => Time, :store => true }})
52
72
  time = Time.now
53
73
  doc = xdb.documents.new(:created_at => time)
54
74
  doc.values.store(:created_at, time).should == time
55
- doc.values.fetch(:created_at).should == time
75
+ doc.values.fetch(:created_at).should be_close(time, 0.0001) # ignore milliseconds
56
76
  doc.to_xapian_document.values.first.value.should == [time.utc.to_f].pack("G")
57
77
  end
58
78
 
@@ -87,6 +107,25 @@ describe XapianDocValueAccessor do
87
107
  doc.values.delete(:city).should == "London"
88
108
  end
89
109
 
110
+ film_data_path = File.join(File.dirname(__FILE__), "fixtures/film_data")
111
+ Dir.foreach(film_data_path) do |db_path|
112
+ next unless db_path =~ /.+~.+/
113
+ it "should read stored values from databases created by #{db_path}" do
114
+ db = XapianDb.new(:dir => File.join(film_data_path, db_path),
115
+ :fields => {
116
+ :title => { :type => String, :store => true },
117
+ :released_on => { :type => Date, :store => true },
118
+ :revenue => { :type => Integer, :store => true }
119
+ })
120
+ FILM_DATA.size.times do |i|
121
+ doc = db.documents[i+1]
122
+ [:title, :released_on, :revenue].each do |field|
123
+ doc.values[field].should === FILM_DATA[i][field]
124
+ end
125
+ end
126
+ end
127
+ end
128
+
90
129
  end
91
130
 
92
131
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xapian-fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Leach
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-09 00:00:00 +01:00
12
+ date: 2009-12-13 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -23,6 +23,7 @@ extra_rdoc_files:
23
23
  - README.rdoc
24
24
  - LICENSE
25
25
  files:
26
+ - lib/xapian-fu.rb
26
27
  - lib/xapian_fu.rb
27
28
  - lib/xapian_fu/result_set.rb
28
29
  - lib/xapian_fu/stopper_factory.rb
@@ -87,7 +88,60 @@ summary: A Ruby interface to the Xapian search engine
87
88
  test_files:
88
89
  - spec/stopper_factory_spec.rb
89
90
  - spec/xapian_doc_spec.rb
91
+ - spec/build_db_for_value_testing.rb
90
92
  - spec/xapian_db_spec.rb
93
+ - spec/fixtures/film_data.rb
94
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/position.baseA
95
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/flintlock
96
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/record.baseA
97
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/termlist.baseB
98
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/position.baseB
99
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/position.DB
100
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/record.baseB
101
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/termlist.DB
102
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/postlist.baseB
103
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/record.DB
104
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/iamflint
105
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/postlist.baseA
106
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/value.DB
107
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/termlist.baseA
108
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/postlist.DB
109
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/value.baseA
110
+ - spec/fixtures/film_data/x86_64-linux~1.8.7/value.baseB
111
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/position.baseA
112
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/flintlock
113
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/record.baseA
114
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/termlist.baseB
115
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/position.baseB
116
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/position.DB
117
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/record.baseB
118
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/termlist.DB
119
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/postlist.baseB
120
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/record.DB
121
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/iamflint
122
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/postlist.baseA
123
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/value.DB
124
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/termlist.baseA
125
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/postlist.DB
126
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/value.baseA
127
+ - spec/fixtures/film_data/x86_64-linux~1.9.1/value.baseB
128
+ - spec/fixtures/film_data/i486-linux~1.8.7/position.baseA
129
+ - spec/fixtures/film_data/i486-linux~1.8.7/flintlock
130
+ - spec/fixtures/film_data/i486-linux~1.8.7/record.baseA
131
+ - spec/fixtures/film_data/i486-linux~1.8.7/termlist.baseB
132
+ - spec/fixtures/film_data/i486-linux~1.8.7/position.baseB
133
+ - spec/fixtures/film_data/i486-linux~1.8.7/position.DB
134
+ - spec/fixtures/film_data/i486-linux~1.8.7/record.baseB
135
+ - spec/fixtures/film_data/i486-linux~1.8.7/termlist.DB
136
+ - spec/fixtures/film_data/i486-linux~1.8.7/postlist.baseB
137
+ - spec/fixtures/film_data/i486-linux~1.8.7/record.DB
138
+ - spec/fixtures/film_data/i486-linux~1.8.7/iamflint
139
+ - spec/fixtures/film_data/i486-linux~1.8.7/postlist.baseA
140
+ - spec/fixtures/film_data/i486-linux~1.8.7/value.DB
141
+ - spec/fixtures/film_data/i486-linux~1.8.7/termlist.baseA
142
+ - spec/fixtures/film_data/i486-linux~1.8.7/postlist.DB
143
+ - spec/fixtures/film_data/i486-linux~1.8.7/value.baseA
144
+ - spec/fixtures/film_data/i486-linux~1.8.7/value.baseB
91
145
  - spec/query_parser_spec.rb
92
146
  - spec/xapian_doc_value_accessor_spec.rb
93
147
  - spec/spec.opts