sdsykes-ferret 0.11.6.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. data/CHANGELOG +24 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README +102 -0
  4. data/Rakefile +338 -0
  5. data/TODO +17 -0
  6. data/TUTORIAL +231 -0
  7. data/bin/ferret-browser +79 -0
  8. data/ext/analysis.c +1555 -0
  9. data/ext/analysis.h +219 -0
  10. data/ext/api.c +69 -0
  11. data/ext/api.h +27 -0
  12. data/ext/array.c +123 -0
  13. data/ext/array.h +53 -0
  14. data/ext/bitvector.c +540 -0
  15. data/ext/bitvector.h +272 -0
  16. data/ext/compound_io.c +383 -0
  17. data/ext/config.h +42 -0
  18. data/ext/document.c +156 -0
  19. data/ext/document.h +53 -0
  20. data/ext/except.c +120 -0
  21. data/ext/except.h +168 -0
  22. data/ext/extconf.rb +14 -0
  23. data/ext/ferret.c +402 -0
  24. data/ext/ferret.h +91 -0
  25. data/ext/filter.c +156 -0
  26. data/ext/fs_store.c +483 -0
  27. data/ext/global.c +418 -0
  28. data/ext/global.h +117 -0
  29. data/ext/hash.c +567 -0
  30. data/ext/hash.h +473 -0
  31. data/ext/hashset.c +170 -0
  32. data/ext/hashset.h +187 -0
  33. data/ext/header.h +58 -0
  34. data/ext/helper.c +62 -0
  35. data/ext/helper.h +13 -0
  36. data/ext/inc/lang.h +48 -0
  37. data/ext/inc/threading.h +31 -0
  38. data/ext/index.c +6425 -0
  39. data/ext/index.h +961 -0
  40. data/ext/lang.h +66 -0
  41. data/ext/libstemmer.c +92 -0
  42. data/ext/libstemmer.h +79 -0
  43. data/ext/mempool.c +87 -0
  44. data/ext/mempool.h +35 -0
  45. data/ext/modules.h +162 -0
  46. data/ext/multimapper.c +310 -0
  47. data/ext/multimapper.h +51 -0
  48. data/ext/posh.c +1006 -0
  49. data/ext/posh.h +1007 -0
  50. data/ext/priorityqueue.c +151 -0
  51. data/ext/priorityqueue.h +143 -0
  52. data/ext/q_boolean.c +1608 -0
  53. data/ext/q_const_score.c +161 -0
  54. data/ext/q_filtered_query.c +209 -0
  55. data/ext/q_fuzzy.c +268 -0
  56. data/ext/q_match_all.c +148 -0
  57. data/ext/q_multi_term.c +677 -0
  58. data/ext/q_parser.c +2825 -0
  59. data/ext/q_phrase.c +1126 -0
  60. data/ext/q_prefix.c +100 -0
  61. data/ext/q_range.c +350 -0
  62. data/ext/q_span.c +2402 -0
  63. data/ext/q_term.c +337 -0
  64. data/ext/q_wildcard.c +171 -0
  65. data/ext/r_analysis.c +2575 -0
  66. data/ext/r_index.c +3472 -0
  67. data/ext/r_qparser.c +585 -0
  68. data/ext/r_search.c +4105 -0
  69. data/ext/r_store.c +513 -0
  70. data/ext/r_utils.c +963 -0
  71. data/ext/ram_store.c +471 -0
  72. data/ext/search.c +1741 -0
  73. data/ext/search.h +885 -0
  74. data/ext/similarity.c +150 -0
  75. data/ext/similarity.h +82 -0
  76. data/ext/sort.c +983 -0
  77. data/ext/stem_ISO_8859_1_danish.c +338 -0
  78. data/ext/stem_ISO_8859_1_danish.h +16 -0
  79. data/ext/stem_ISO_8859_1_dutch.c +635 -0
  80. data/ext/stem_ISO_8859_1_dutch.h +16 -0
  81. data/ext/stem_ISO_8859_1_english.c +1156 -0
  82. data/ext/stem_ISO_8859_1_english.h +16 -0
  83. data/ext/stem_ISO_8859_1_finnish.c +792 -0
  84. data/ext/stem_ISO_8859_1_finnish.h +16 -0
  85. data/ext/stem_ISO_8859_1_french.c +1276 -0
  86. data/ext/stem_ISO_8859_1_french.h +16 -0
  87. data/ext/stem_ISO_8859_1_german.c +512 -0
  88. data/ext/stem_ISO_8859_1_german.h +16 -0
  89. data/ext/stem_ISO_8859_1_italian.c +1091 -0
  90. data/ext/stem_ISO_8859_1_italian.h +16 -0
  91. data/ext/stem_ISO_8859_1_norwegian.c +296 -0
  92. data/ext/stem_ISO_8859_1_norwegian.h +16 -0
  93. data/ext/stem_ISO_8859_1_porter.c +776 -0
  94. data/ext/stem_ISO_8859_1_porter.h +16 -0
  95. data/ext/stem_ISO_8859_1_portuguese.c +1035 -0
  96. data/ext/stem_ISO_8859_1_portuguese.h +16 -0
  97. data/ext/stem_ISO_8859_1_spanish.c +1119 -0
  98. data/ext/stem_ISO_8859_1_spanish.h +16 -0
  99. data/ext/stem_ISO_8859_1_swedish.c +307 -0
  100. data/ext/stem_ISO_8859_1_swedish.h +16 -0
  101. data/ext/stem_KOI8_R_russian.c +701 -0
  102. data/ext/stem_KOI8_R_russian.h +16 -0
  103. data/ext/stem_UTF_8_danish.c +344 -0
  104. data/ext/stem_UTF_8_danish.h +16 -0
  105. data/ext/stem_UTF_8_dutch.c +653 -0
  106. data/ext/stem_UTF_8_dutch.h +16 -0
  107. data/ext/stem_UTF_8_english.c +1176 -0
  108. data/ext/stem_UTF_8_english.h +16 -0
  109. data/ext/stem_UTF_8_finnish.c +808 -0
  110. data/ext/stem_UTF_8_finnish.h +16 -0
  111. data/ext/stem_UTF_8_french.c +1296 -0
  112. data/ext/stem_UTF_8_french.h +16 -0
  113. data/ext/stem_UTF_8_german.c +526 -0
  114. data/ext/stem_UTF_8_german.h +16 -0
  115. data/ext/stem_UTF_8_italian.c +1113 -0
  116. data/ext/stem_UTF_8_italian.h +16 -0
  117. data/ext/stem_UTF_8_norwegian.c +302 -0
  118. data/ext/stem_UTF_8_norwegian.h +16 -0
  119. data/ext/stem_UTF_8_porter.c +794 -0
  120. data/ext/stem_UTF_8_porter.h +16 -0
  121. data/ext/stem_UTF_8_portuguese.c +1055 -0
  122. data/ext/stem_UTF_8_portuguese.h +16 -0
  123. data/ext/stem_UTF_8_russian.c +709 -0
  124. data/ext/stem_UTF_8_russian.h +16 -0
  125. data/ext/stem_UTF_8_spanish.c +1137 -0
  126. data/ext/stem_UTF_8_spanish.h +16 -0
  127. data/ext/stem_UTF_8_swedish.c +313 -0
  128. data/ext/stem_UTF_8_swedish.h +16 -0
  129. data/ext/stopwords.c +401 -0
  130. data/ext/store.c +692 -0
  131. data/ext/store.h +777 -0
  132. data/ext/term_vectors.c +352 -0
  133. data/ext/threading.h +31 -0
  134. data/ext/utilities.c +446 -0
  135. data/ext/win32.h +54 -0
  136. data/lib/ferret.rb +29 -0
  137. data/lib/ferret/browser.rb +246 -0
  138. data/lib/ferret/browser/s/global.js +192 -0
  139. data/lib/ferret/browser/s/style.css +148 -0
  140. data/lib/ferret/browser/views/document/list.rhtml +49 -0
  141. data/lib/ferret/browser/views/document/show.rhtml +27 -0
  142. data/lib/ferret/browser/views/error/index.rhtml +7 -0
  143. data/lib/ferret/browser/views/help/index.rhtml +8 -0
  144. data/lib/ferret/browser/views/home/index.rhtml +29 -0
  145. data/lib/ferret/browser/views/layout.rhtml +22 -0
  146. data/lib/ferret/browser/views/term-vector/index.rhtml +4 -0
  147. data/lib/ferret/browser/views/term/index.rhtml +199 -0
  148. data/lib/ferret/browser/views/term/termdocs.rhtml +1 -0
  149. data/lib/ferret/browser/webrick.rb +14 -0
  150. data/lib/ferret/document.rb +130 -0
  151. data/lib/ferret/field_infos.rb +44 -0
  152. data/lib/ferret/index.rb +786 -0
  153. data/lib/ferret/number_tools.rb +157 -0
  154. data/lib/ferret_version.rb +3 -0
  155. data/setup.rb +1555 -0
  156. data/test/test_all.rb +5 -0
  157. data/test/test_helper.rb +24 -0
  158. data/test/threading/number_to_spoken.rb +132 -0
  159. data/test/threading/thread_safety_index_test.rb +79 -0
  160. data/test/threading/thread_safety_read_write_test.rb +76 -0
  161. data/test/threading/thread_safety_test.rb +133 -0
  162. data/test/unit/analysis/tc_analyzer.rb +548 -0
  163. data/test/unit/analysis/tc_token_stream.rb +646 -0
  164. data/test/unit/index/tc_index.rb +762 -0
  165. data/test/unit/index/tc_index_reader.rb +699 -0
  166. data/test/unit/index/tc_index_writer.rb +437 -0
  167. data/test/unit/index/th_doc.rb +315 -0
  168. data/test/unit/largefile/tc_largefile.rb +46 -0
  169. data/test/unit/query_parser/tc_query_parser.rb +238 -0
  170. data/test/unit/search/tc_filter.rb +135 -0
  171. data/test/unit/search/tc_fuzzy_query.rb +147 -0
  172. data/test/unit/search/tc_index_searcher.rb +61 -0
  173. data/test/unit/search/tc_multi_searcher.rb +128 -0
  174. data/test/unit/search/tc_multiple_search_requests.rb +58 -0
  175. data/test/unit/search/tc_search_and_sort.rb +179 -0
  176. data/test/unit/search/tc_sort.rb +49 -0
  177. data/test/unit/search/tc_sort_field.rb +27 -0
  178. data/test/unit/search/tc_spans.rb +190 -0
  179. data/test/unit/search/tm_searcher.rb +384 -0
  180. data/test/unit/store/tc_fs_store.rb +77 -0
  181. data/test/unit/store/tc_ram_store.rb +35 -0
  182. data/test/unit/store/tm_store.rb +34 -0
  183. data/test/unit/store/tm_store_lock.rb +68 -0
  184. data/test/unit/tc_document.rb +81 -0
  185. data/test/unit/ts_analysis.rb +2 -0
  186. data/test/unit/ts_index.rb +2 -0
  187. data/test/unit/ts_largefile.rb +4 -0
  188. data/test/unit/ts_query_parser.rb +2 -0
  189. data/test/unit/ts_search.rb +2 -0
  190. data/test/unit/ts_store.rb +2 -0
  191. data/test/unit/ts_utils.rb +2 -0
  192. data/test/unit/utils/tc_bit_vector.rb +295 -0
  193. data/test/unit/utils/tc_number_tools.rb +117 -0
  194. data/test/unit/utils/tc_priority_queue.rb +106 -0
  195. metadata +285 -0
@@ -0,0 +1,117 @@
1
+ require File.dirname(__FILE__) + "/../../test_helper"
2
+ require 'ferret/number_tools'
3
+
4
+
5
+ class NumberToolsTest < Test::Unit::TestCase
6
+ include Ferret::Utils
7
+
8
+ def test_to_i_lex_near_zero()
9
+ (-10..10).each do |num|
10
+ assert(num.to_s_lex > (num-1).to_s_lex,
11
+ "Strings should sort correctly but " +
12
+ "#{num.to_s_lex} <= #{(num-1).to_s_lex}")
13
+ assert_equal(num, num.to_s_lex.to_i_lex)
14
+ end
15
+ end
16
+
17
+ def test_to_i_pad_near_zero()
18
+ (1..10).each do |num|
19
+ assert(num.to_s_pad(3) > (num-1).to_s_pad(3),
20
+ "Strings should sort correctly but " +
21
+ "#{num.to_s_pad(3)} <= #{(num-1).to_s_pad(3)}")
22
+ assert_equal(num, num.to_s_pad(3).to_i)
23
+ end
24
+ end
25
+
26
+ def test_to_i_lex_larger_numbers
27
+ 100.times do
28
+ num1 = rand(10000000000000000000000000000000000)
29
+ num2 = rand(10000000000000000000000000000000000)
30
+ num1 *= -1 if rand(2) == 0
31
+ num2 *= -1 if rand(2) == 0
32
+
33
+ assert_equal(num1, num1.to_s_lex.to_i_lex)
34
+ assert_equal(num2, num2.to_s_lex.to_i_lex)
35
+ assert_equal(num1 < num2, num1.to_s_lex < num2.to_s_lex,
36
+ "Strings should sort correctly but " +
37
+ "#{num1} < #{num2} == #{num1 < num2} but " +
38
+ "#{num1.to_s_lex} < #{num2.to_s_lex} == " +
39
+ "#{num1.to_s_lex < num2.to_s_lex}")
40
+ end
41
+ end
42
+
43
+ def test_to_i_pad
44
+ 100.times do
45
+ num1 = rand(10000000000000000000000000000000000)
46
+ num2 = rand(10000000000000000000000000000000000)
47
+ assert_equal(num1, num1.to_s_pad(35).to_i)
48
+ assert_equal(num2, num2.to_s_pad(35).to_i)
49
+ assert_equal(num1 < num2, num1.to_s_pad(35) < num2.to_s_pad(35),
50
+ "Strings should sort correctly but " +
51
+ "#{num1} < #{num2} == #{num1 < num2} but " +
52
+ "#{num1.to_s_pad(35)} < #{num2.to_s_pad(35)} == " +
53
+ "#{num1.to_s_pad(35) < num2.to_s_pad(35)}")
54
+ end
55
+ end
56
+
57
+ def test_time_to_s_lex
58
+ t_num = Time.now.to_i - 365*24*60*60 # prevent range error
59
+
60
+ 10.times do
61
+ t1 = Time.now - rand(t_num)
62
+ t2 = Time.now - rand(t_num)
63
+ assert_equal(t1.to_s, t1.to_s_lex(:second).to_time_lex.to_s)
64
+ assert_equal(t2.to_s, t2.to_s_lex(:second).to_time_lex.to_s)
65
+ [:year, :month, :day, :hour, :minute, :second, :millisecond].each do |prec|
66
+ t1_x = t1.to_s_lex(prec).to_time_lex
67
+ t2_x = t2.to_s_lex(prec).to_time_lex
68
+ assert_equal(t1_x < t2_x, t1.to_s_lex(prec) < t2.to_s_lex(prec),
69
+ "Strings should sort correctly but " +
70
+ "#{t1_x} < #{t2_x} == #{t1_x < t2_x} but " +
71
+ "#{t1.to_s_lex(prec)} < #{t2.to_s_lex(prec)} == " +
72
+ "#{t1.to_s_lex(prec) < t2.to_s_lex(prec)}")
73
+ end
74
+ end
75
+ end
76
+
77
+ def test_date_to_s_lex
78
+ 10.times do
79
+ d1 = Date.civil(rand(2200), rand(12) + 1, rand(28) + 1)
80
+ d2 = Date.civil(rand(2200), rand(12) + 1, rand(28) + 1)
81
+ assert_equal(d1.to_s, d1.to_s_lex(:day).to_date_lex.to_s)
82
+ assert_equal(d2.to_s, d2.to_s_lex(:day).to_date_lex.to_s)
83
+ [:year, :month, :day].each do |prec|
84
+ d1_x = d1.to_s_lex(prec).to_date_lex
85
+ d2_x = d2.to_s_lex(prec).to_date_lex
86
+ assert_equal(d1_x < d2_x, d1.to_s_lex(prec) < d2.to_s_lex(prec),
87
+ "Strings should sort correctly but " +
88
+ "#{d1_x} < #{d2_x} == #{d1_x < d2_x} but " +
89
+ "#{d1.to_s_lex(prec)} < #{d2.to_s_lex(prec)} == " +
90
+ "#{d1.to_s_lex(prec) < d2.to_s_lex(prec)}")
91
+ end
92
+
93
+ end
94
+ end
95
+
96
+ def test_date_time_to_s_lex
97
+ 10.times do
98
+ d1 = "#{rand(600) + 1600}-#{rand(12)+1}-#{rand(28)+1} " +
99
+ "#{rand(24)}:#{rand(60)}:#{rand(60)}"
100
+ d2 = "#{rand(600) + 1600}-#{rand(12)+1}-#{rand(28)+1} " +
101
+ "#{rand(24)}:#{rand(60)}:#{rand(60)}"
102
+ d1 = DateTime.strptime(d1, "%Y-%m-%d %H:%M:%S")
103
+ d2 = DateTime.strptime(d2, "%Y-%m-%d %H:%M:%S")
104
+ assert_equal(d1.to_s, d1.to_s_lex(:second).to_date_time_lex.to_s)
105
+ assert_equal(d2.to_s, d2.to_s_lex(:second).to_date_time_lex.to_s)
106
+ [:year, :month, :day, :hour, :minute, :second].each do |prec|
107
+ d1_x = d1.to_s_lex(prec).to_date_lex
108
+ d2_x = d2.to_s_lex(prec).to_date_lex
109
+ assert_equal(d1_x < d2_x, d1.to_s_lex(prec) < d2.to_s_lex(prec),
110
+ "Strings should sort correctly but " +
111
+ "#{d1_x} < #{d2_x} == #{d1_x < d2_x} but " +
112
+ "#{d1.to_s_lex(prec)} < #{d2.to_s_lex(prec)} == " +
113
+ "#{d1.to_s_lex(prec) < d2.to_s_lex(prec)}")
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,106 @@
1
+ require File.dirname(__FILE__) + "/../../test_helper"
2
+
3
+
4
+ class PriorityQueueTest < Test::Unit::TestCase
5
+ include Ferret::Utils
6
+
7
+ PQ_STRESS_SIZE = 1000
8
+
9
+ def test_pq()
10
+ pq = PriorityQueue.new(4)
11
+ assert_equal(0, pq.size)
12
+ assert_equal(4, pq.capacity)
13
+ pq.insert("bword")
14
+ assert_equal(1, pq.size)
15
+ assert_equal("bword", pq.top)
16
+
17
+ pq.insert("cword")
18
+ assert_equal(2, pq.size)
19
+ assert_equal("bword", pq.top)
20
+
21
+ pq << "dword"
22
+ assert_equal(3, pq.size)
23
+ assert_equal("bword", pq.top)
24
+
25
+ pq << "eword"
26
+ assert_equal(4, pq.size)
27
+ assert_equal("bword", pq.top)
28
+
29
+ pq << "aword"
30
+ assert_equal(4, pq.size)
31
+ assert_equal("bword", pq.top, "aword < all other elements so ignore")
32
+
33
+ pq << "fword"
34
+ assert_equal(4, pq.size)
35
+ assert_equal("cword", pq.top, "bword got pushed off the bottom of the queue")
36
+
37
+ assert_equal("cword", pq.pop())
38
+ assert_equal(3, pq.size)
39
+ assert_equal("dword", pq.pop())
40
+ assert_equal(2, pq.size)
41
+ assert_equal("eword", pq.pop())
42
+ assert_equal(1, pq.size)
43
+ assert_equal("fword", pq.pop())
44
+ assert_equal(0, pq.size)
45
+ assert_nil(pq.top)
46
+ assert_nil(pq.pop)
47
+ end
48
+
49
+ def test_pq_clear()
50
+ pq = PriorityQueue.new(3)
51
+ pq << "word1"
52
+ pq << "word2"
53
+ pq << "word3"
54
+ assert_equal(3, pq.size)
55
+ pq.clear()
56
+ assert_equal(0, pq.size)
57
+ assert_nil(pq.top)
58
+ assert_nil(pq.pop)
59
+ end
60
+
61
+ #define PQ_STRESS_SIZE 1000
62
+ def test_stress_pq
63
+ pq = PriorityQueue.new(PQ_STRESS_SIZE)
64
+ PQ_STRESS_SIZE.times do
65
+ pq.insert("<#{rand(PQ_STRESS_SIZE)}>")
66
+ end
67
+
68
+ prev = pq.pop()
69
+ (PQ_STRESS_SIZE - 1).times do
70
+ curr = pq.pop()
71
+ assert(prev <= curr, "#{prev} should be less than #{curr}")
72
+ prev = curr
73
+ end
74
+ pq.clear()
75
+ end
76
+
77
+ def test_pq_block
78
+ pq = PriorityQueue.new(21) {|a, b| a > b}
79
+ 100.times do
80
+ pq.insert("<#{rand(50)}>")
81
+ end
82
+
83
+ prev = pq.pop()
84
+ 20.times do
85
+ curr = pq.pop()
86
+ assert(prev >= curr, "#{prev} should be greater than #{curr}")
87
+ prev = curr
88
+ end
89
+ assert_equal 0, pq.size
90
+ end
91
+
92
+ def test_pq_proc
93
+ pq = PriorityQueue.new({:less_than => lambda {|a, b| a.size > b.size}, :capacity => 21})
94
+ 100.times do
95
+ pq.insert("x" * rand(50))
96
+ end
97
+
98
+ prev = pq.pop()
99
+ 20.times do
100
+ curr = pq.pop()
101
+ assert(prev.size >= curr.size, "#{prev} should be greater than #{curr}")
102
+ prev = curr
103
+ end
104
+ assert_equal 0, pq.size
105
+ end
106
+ end
metadata ADDED
@@ -0,0 +1,285 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sdsykes-ferret
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 11
8
+ - 6
9
+ - 19
10
+ version: 0.11.6.19
11
+ platform: ruby
12
+ authors:
13
+ - David Balmain
14
+ autorequire: ferret
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2007-11-28 00:00:00 +02:00
19
+ default_executable: ferret-browser
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rake
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">"
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 0
31
+ - 0
32
+ version: 0.0.0
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ description: Ferret is a port of the Java Lucene project. It is a powerful indexing and search library.
36
+ email: dbalmain@gmail.com
37
+ executables:
38
+ - ferret-browser
39
+ extensions:
40
+ - ext/extconf.rb
41
+ extra_rdoc_files:
42
+ - README
43
+ - TODO
44
+ - TUTORIAL
45
+ - MIT-LICENSE
46
+ - ext/r_index.c
47
+ - ext/r_analysis.c
48
+ - ext/r_utils.c
49
+ - ext/r_search.c
50
+ - ext/r_qparser.c
51
+ - ext/r_store.c
52
+ - ext/ferret.c
53
+ files:
54
+ - setup.rb
55
+ - TODO
56
+ - TUTORIAL
57
+ - Rakefile
58
+ - CHANGELOG
59
+ - README
60
+ - MIT-LICENSE
61
+ - ext/lang.h
62
+ - ext/q_filtered_query.c
63
+ - ext/stem_ISO_8859_1_spanish.h
64
+ - ext/stem_ISO_8859_1_spanish.c
65
+ - ext/global.c
66
+ - ext/stem_UTF_8_italian.c
67
+ - ext/modules.h
68
+ - ext/stem_UTF_8_portuguese.c
69
+ - ext/stem_ISO_8859_1_dutch.c
70
+ - ext/store.h
71
+ - ext/stem_UTF_8_spanish.h
72
+ - ext/array.c
73
+ - ext/stem_ISO_8859_1_finnish.c
74
+ - ext/stem_ISO_8859_1_finnish.h
75
+ - ext/stem_UTF_8_finnish.h
76
+ - ext/stem_ISO_8859_1_italian.h
77
+ - ext/analysis.h
78
+ - ext/q_wildcard.c
79
+ - ext/except.h
80
+ - ext/stem_UTF_8_english.c
81
+ - ext/stem_ISO_8859_1_german.h
82
+ - ext/api.c
83
+ - ext/r_index.c
84
+ - ext/hashset.c
85
+ - ext/stem_ISO_8859_1_german.c
86
+ - ext/stem_ISO_8859_1_swedish.h
87
+ - ext/utilities.c
88
+ - ext/stem_UTF_8_spanish.c
89
+ - ext/stem_UTF_8_dutch.h
90
+ - ext/stem_ISO_8859_1_danish.c
91
+ - ext/q_match_all.c
92
+ - ext/stem_UTF_8_german.c
93
+ - ext/compound_io.c
94
+ - ext/hash.h
95
+ - ext/q_prefix.c
96
+ - ext/stopwords.c
97
+ - ext/stem_ISO_8859_1_italian.c
98
+ - ext/bitvector.h
99
+ - ext/stem_ISO_8859_1_dutch.h
100
+ - ext/bitvector.c
101
+ - ext/r_analysis.c
102
+ - ext/mempool.h
103
+ - ext/config.h
104
+ - ext/stem_UTF_8_german.h
105
+ - ext/stem_UTF_8_porter.c
106
+ - ext/stem_ISO_8859_1_norwegian.c
107
+ - ext/threading.h
108
+ - ext/stem_UTF_8_norwegian.c
109
+ - ext/stem_ISO_8859_1_swedish.c
110
+ - ext/stem_UTF_8_portuguese.h
111
+ - ext/search.h
112
+ - ext/hash.c
113
+ - ext/stem_UTF_8_swedish.c
114
+ - ext/fs_store.c
115
+ - ext/stem_UTF_8_french.h
116
+ - ext/stem_UTF_8_finnish.c
117
+ - ext/stem_UTF_8_danish.c
118
+ - ext/stem_UTF_8_porter.h
119
+ - ext/ferret.c
120
+ - ext/term_vectors.c
121
+ - ext/posh.c
122
+ - ext/stem_ISO_8859_1_norwegian.h
123
+ - ext/helper.c
124
+ - ext/mempool.c
125
+ - ext/r_utils.c
126
+ - ext/document.c
127
+ - ext/stem_KOI8_R_russian.c
128
+ - ext/stem_KOI8_R_russian.h
129
+ - ext/r_search.c
130
+ - ext/libstemmer.c
131
+ - ext/api.h
132
+ - ext/stem_ISO_8859_1_portuguese.c
133
+ - ext/r_qparser.c
134
+ - ext/multimapper.h
135
+ - ext/stem_ISO_8859_1_french.c
136
+ - ext/stem_UTF_8_danish.h
137
+ - ext/stem_ISO_8859_1_portuguese.h
138
+ - ext/hashset.h
139
+ - ext/q_parser.c
140
+ - ext/analysis.c
141
+ - ext/r_store.c
142
+ - ext/stem_UTF_8_swedish.h
143
+ - ext/stem_UTF_8_italian.h
144
+ - ext/q_phrase.c
145
+ - ext/q_term.c
146
+ - ext/priorityqueue.h
147
+ - ext/libstemmer.h
148
+ - ext/filter.c
149
+ - ext/q_span.c
150
+ - ext/multimapper.c
151
+ - ext/index.h
152
+ - ext/helper.h
153
+ - ext/similarity.h
154
+ - ext/stem_UTF_8_french.c
155
+ - ext/header.h
156
+ - ext/index.c
157
+ - ext/posh.h
158
+ - ext/document.h
159
+ - ext/similarity.c
160
+ - ext/stem_UTF_8_russian.c
161
+ - ext/win32.h
162
+ - ext/q_fuzzy.c
163
+ - ext/search.c
164
+ - ext/stem_ISO_8859_1_porter.c
165
+ - ext/stem_UTF_8_russian.h
166
+ - ext/ram_store.c
167
+ - ext/stem_ISO_8859_1_porter.h
168
+ - ext/except.c
169
+ - ext/q_range.c
170
+ - ext/sort.c
171
+ - ext/q_multi_term.c
172
+ - ext/q_const_score.c
173
+ - ext/q_boolean.c
174
+ - ext/stem_UTF_8_norwegian.h
175
+ - ext/priorityqueue.c
176
+ - ext/array.h
177
+ - ext/stem_ISO_8859_1_danish.h
178
+ - ext/store.c
179
+ - ext/stem_UTF_8_english.h
180
+ - ext/stem_ISO_8859_1_english.h
181
+ - ext/stem_ISO_8859_1_french.h
182
+ - ext/stem_ISO_8859_1_english.c
183
+ - ext/ferret.h
184
+ - ext/global.h
185
+ - ext/stem_UTF_8_dutch.c
186
+ - ext/inc/lang.h
187
+ - ext/inc/threading.h
188
+ - lib/ferret_version.rb
189
+ - lib/ferret/field_infos.rb
190
+ - lib/ferret/browser/webrick.rb
191
+ - lib/ferret/browser.rb
192
+ - lib/ferret/document.rb
193
+ - lib/ferret/index.rb
194
+ - lib/ferret/number_tools.rb
195
+ - lib/ferret.rb
196
+ - lib/ferret/browser/views/home/index.rhtml
197
+ - lib/ferret/browser/views/help/index.rhtml
198
+ - lib/ferret/browser/views/document/list.rhtml
199
+ - lib/ferret/browser/views/document/show.rhtml
200
+ - lib/ferret/browser/views/term/index.rhtml
201
+ - lib/ferret/browser/views/term/termdocs.rhtml
202
+ - lib/ferret/browser/views/error/index.rhtml
203
+ - lib/ferret/browser/views/layout.rhtml
204
+ - lib/ferret/browser/views/term-vector/index.rhtml
205
+ - lib/ferret/browser/s/style.css
206
+ - lib/ferret/browser/s/global.js
207
+ - test/unit/index/th_doc.rb
208
+ - test/unit/index/tc_index_writer.rb
209
+ - test/unit/index/tc_index.rb
210
+ - test/unit/index/tc_index_reader.rb
211
+ - test/unit/ts_index.rb
212
+ - test/unit/tc_document.rb
213
+ - test/unit/ts_query_parser.rb
214
+ - test/unit/utils/tc_bit_vector.rb
215
+ - test/unit/utils/tc_priority_queue.rb
216
+ - test/unit/utils/tc_number_tools.rb
217
+ - test/unit/ts_analysis.rb
218
+ - test/unit/query_parser/tc_query_parser.rb
219
+ - test/unit/search/tc_search_and_sort.rb
220
+ - test/unit/search/tc_sort.rb
221
+ - test/unit/search/tc_index_searcher.rb
222
+ - test/unit/search/tc_sort_field.rb
223
+ - test/unit/search/tm_searcher.rb
224
+ - test/unit/search/tc_fuzzy_query.rb
225
+ - test/unit/search/tc_filter.rb
226
+ - test/unit/search/tc_multiple_search_requests.rb
227
+ - test/unit/search/tc_spans.rb
228
+ - test/unit/search/tc_multi_searcher.rb
229
+ - test/unit/ts_search.rb
230
+ - test/unit/ts_store.rb
231
+ - test/unit/store/tc_fs_store.rb
232
+ - test/unit/store/tm_store.rb
233
+ - test/unit/store/tm_store_lock.rb
234
+ - test/unit/store/tc_ram_store.rb
235
+ - test/unit/ts_utils.rb
236
+ - test/unit/analysis/tc_token_stream.rb
237
+ - test/unit/analysis/tc_analyzer.rb
238
+ - test/unit/ts_largefile.rb
239
+ - test/unit/largefile/tc_largefile.rb
240
+ - test/test_all.rb
241
+ - test/threading/thread_safety_index_test.rb
242
+ - test/threading/number_to_spoken.rb
243
+ - test/threading/thread_safety_read_write_test.rb
244
+ - test/threading/thread_safety_test.rb
245
+ - test/test_helper.rb
246
+ - bin/ferret-browser
247
+ - ext/extconf.rb
248
+ has_rdoc: true
249
+ homepage: http://ferret.davebalmain.com/trac
250
+ licenses: []
251
+
252
+ post_install_message:
253
+ rdoc_options:
254
+ - --title
255
+ - Ferret -- Ruby Indexer
256
+ - --main
257
+ - README
258
+ - --line-numbers
259
+ - TUTORIAL
260
+ - TODO
261
+ require_paths:
262
+ - lib
263
+ required_ruby_version: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - ">="
266
+ - !ruby/object:Gem::Version
267
+ segments:
268
+ - 0
269
+ version: "0"
270
+ required_rubygems_version: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ segments:
275
+ - 0
276
+ version: "0"
277
+ requirements: []
278
+
279
+ rubyforge_project: ferret
280
+ rubygems_version: 1.3.6
281
+ signing_key:
282
+ specification_version: 3
283
+ summary: Ruby indexing library.
284
+ test_files: []
285
+