sunspot 0.9.7

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 (101) hide show
  1. data/History.txt +83 -0
  2. data/LICENSE +18 -0
  3. data/README.rdoc +154 -0
  4. data/Rakefile +9 -0
  5. data/TODO +9 -0
  6. data/VERSION.yml +4 -0
  7. data/bin/sunspot-configure-solr +46 -0
  8. data/bin/sunspot-solr +62 -0
  9. data/lib/light_config.rb +40 -0
  10. data/lib/sunspot.rb +469 -0
  11. data/lib/sunspot/adapters.rb +265 -0
  12. data/lib/sunspot/composite_setup.rb +186 -0
  13. data/lib/sunspot/configuration.rb +38 -0
  14. data/lib/sunspot/data_extractor.rb +47 -0
  15. data/lib/sunspot/dsl.rb +3 -0
  16. data/lib/sunspot/dsl/field_query.rb +72 -0
  17. data/lib/sunspot/dsl/fields.rb +86 -0
  18. data/lib/sunspot/dsl/query.rb +59 -0
  19. data/lib/sunspot/dsl/query_facet.rb +31 -0
  20. data/lib/sunspot/dsl/restriction.rb +25 -0
  21. data/lib/sunspot/dsl/scope.rb +193 -0
  22. data/lib/sunspot/dsl/search.rb +30 -0
  23. data/lib/sunspot/facet.rb +16 -0
  24. data/lib/sunspot/facet_data.rb +120 -0
  25. data/lib/sunspot/facet_row.rb +10 -0
  26. data/lib/sunspot/field.rb +157 -0
  27. data/lib/sunspot/field_factory.rb +126 -0
  28. data/lib/sunspot/indexer.rb +123 -0
  29. data/lib/sunspot/instantiated_facet.rb +42 -0
  30. data/lib/sunspot/instantiated_facet_row.rb +22 -0
  31. data/lib/sunspot/query.rb +191 -0
  32. data/lib/sunspot/query/base_query.rb +90 -0
  33. data/lib/sunspot/query/connective.rb +126 -0
  34. data/lib/sunspot/query/dynamic_query.rb +69 -0
  35. data/lib/sunspot/query/field_facet.rb +151 -0
  36. data/lib/sunspot/query/field_query.rb +63 -0
  37. data/lib/sunspot/query/pagination.rb +39 -0
  38. data/lib/sunspot/query/query_facet.rb +73 -0
  39. data/lib/sunspot/query/query_facet_row.rb +19 -0
  40. data/lib/sunspot/query/query_field_facet.rb +13 -0
  41. data/lib/sunspot/query/restriction.rb +233 -0
  42. data/lib/sunspot/query/scope.rb +165 -0
  43. data/lib/sunspot/query/sort.rb +36 -0
  44. data/lib/sunspot/query/sort_composite.rb +33 -0
  45. data/lib/sunspot/schema.rb +165 -0
  46. data/lib/sunspot/search.rb +219 -0
  47. data/lib/sunspot/search/hit.rb +66 -0
  48. data/lib/sunspot/session.rb +201 -0
  49. data/lib/sunspot/setup.rb +271 -0
  50. data/lib/sunspot/type.rb +200 -0
  51. data/lib/sunspot/util.rb +164 -0
  52. data/solr/etc/jetty.xml +212 -0
  53. data/solr/etc/webdefault.xml +379 -0
  54. data/solr/lib/jetty-6.1.3.jar +0 -0
  55. data/solr/lib/jetty-util-6.1.3.jar +0 -0
  56. data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  57. data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  58. data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  59. data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  60. data/solr/lib/servlet-api-2.5-6.1.3.jar +0 -0
  61. data/solr/solr/conf/elevate.xml +36 -0
  62. data/solr/solr/conf/protwords.txt +21 -0
  63. data/solr/solr/conf/schema.xml +50 -0
  64. data/solr/solr/conf/solrconfig.xml +696 -0
  65. data/solr/solr/conf/stopwords.txt +57 -0
  66. data/solr/solr/conf/synonyms.txt +31 -0
  67. data/solr/start.jar +0 -0
  68. data/solr/webapps/solr.war +0 -0
  69. data/spec/api/adapters_spec.rb +33 -0
  70. data/spec/api/build_search_spec.rb +1039 -0
  71. data/spec/api/indexer_spec.rb +311 -0
  72. data/spec/api/query_spec.rb +153 -0
  73. data/spec/api/search_retrieval_spec.rb +362 -0
  74. data/spec/api/session_spec.rb +157 -0
  75. data/spec/api/spec_helper.rb +1 -0
  76. data/spec/api/sunspot_spec.rb +18 -0
  77. data/spec/integration/dynamic_fields_spec.rb +55 -0
  78. data/spec/integration/faceting_spec.rb +169 -0
  79. data/spec/integration/keyword_search_spec.rb +83 -0
  80. data/spec/integration/scoped_search_spec.rb +289 -0
  81. data/spec/integration/spec_helper.rb +1 -0
  82. data/spec/integration/stored_fields_spec.rb +10 -0
  83. data/spec/integration/test_pagination.rb +32 -0
  84. data/spec/mocks/adapters.rb +32 -0
  85. data/spec/mocks/blog.rb +3 -0
  86. data/spec/mocks/comment.rb +19 -0
  87. data/spec/mocks/connection.rb +84 -0
  88. data/spec/mocks/mock_adapter.rb +30 -0
  89. data/spec/mocks/mock_record.rb +48 -0
  90. data/spec/mocks/photo.rb +8 -0
  91. data/spec/mocks/post.rb +73 -0
  92. data/spec/mocks/user.rb +8 -0
  93. data/spec/spec_helper.rb +47 -0
  94. data/tasks/gemspec.rake +25 -0
  95. data/tasks/rcov.rake +28 -0
  96. data/tasks/rdoc.rake +22 -0
  97. data/tasks/schema.rake +19 -0
  98. data/tasks/spec.rake +24 -0
  99. data/tasks/todo.rake +4 -0
  100. data/templates/schema.xml.haml +24 -0
  101. metadata +246 -0
data/tasks/rdoc.rake ADDED
@@ -0,0 +1,22 @@
1
+ gem 'mislav-hanna'
2
+ require 'hanna/rdoctask'
3
+ require 'jeweler'
4
+
5
+ Rake::RDocTask.new(:doc) do |rdoc|
6
+ version = Jeweler::VersionHelper.new(File.join(File.dirname(__FILE__), '..')).to_s
7
+ rdoc.title = "Sunspot #{version} - Solr-powered search for Ruby objects - API Documentation"
8
+ rdoc.main = 'README.rdoc'
9
+ rdoc.rdoc_files.include('README.rdoc', 'lib/sunspot.rb', 'lib/sunspot/**/*.rb')
10
+ rdoc.rdoc_dir = 'doc'
11
+ rdoc.options << "--webcvs=http://github.com/outoftime/sunspot/tree/v#{version}/%s" << '--title' << 'Sunspot - Solr-powered search for Ruby objects - API Documentation'
12
+ end
13
+
14
+ namespace :doc do
15
+ desc 'Generate rdoc and move into pages directory'
16
+ task :publish => :redoc do
17
+ doc_dir = File.join(File.dirname(__FILE__), '..', 'doc')
18
+ publish_dir = File.join(File.dirname(__FILE__), '..', 'pages', 'docs')
19
+ FileUtils.rm_rf(publish_dir) if File.exist?(publish_dir)
20
+ FileUtils.cp_r(doc_dir, publish_dir)
21
+ end
22
+ end
data/tasks/schema.rake ADDED
@@ -0,0 +1,19 @@
1
+ namespace :schema do
2
+ desc 'Compile schema from Haml template'
3
+ task :compile do
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'sunspot', 'schema')
5
+ File.open(
6
+ File.join(
7
+ File.dirname(__FILE__),
8
+ '..',
9
+ 'solr',
10
+ 'solr',
11
+ 'conf',
12
+ 'schema.xml'
13
+ ),
14
+ 'w'
15
+ ) do |file|
16
+ file << Sunspot::Schema.new.to_xml
17
+ end
18
+ end
19
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,24 @@
1
+ gem 'rspec', '~>1.1'
2
+
3
+ require 'spec'
4
+ require 'spec/rake/spectask'
5
+
6
+ desc 'run specs'
7
+ Spec::Rake::SpecTask.new('spec') do |t|
8
+ t.spec_files = FileList[File.join(File.dirname(__FILE__), '..', 'spec', '**', '*_spec.rb')]
9
+ t.spec_opts = ['--color']
10
+ end
11
+
12
+ namespace :spec do
13
+ desc 'run api specs (mock out Solr dependency)'
14
+ Spec::Rake::SpecTask.new('api') do |t|
15
+ t.spec_files = FileList[File.join(File.dirname(__FILE__), '..', 'spec', 'api', '*_spec.rb')]
16
+ t.spec_opts = ['--color']
17
+ end
18
+
19
+ desc 'run integration specs (be sure to run `bin/sunspot-solr start`)'
20
+ Spec::Rake::SpecTask.new('integration') do |t|
21
+ t.spec_files = FileList[File.join(File.dirname(__FILE__), '..', 'spec', 'integration', '*_spec.rb')]
22
+ t.spec_opts = ['--color']
23
+ end
24
+ end
data/tasks/todo.rake ADDED
@@ -0,0 +1,4 @@
1
+ desc 'Show all TODO and related tags'
2
+ task :todo do
3
+ FileList['lib/**/*.rb'].egrep(/#.*(TODO|FIXME|XXX)/)
4
+ end
@@ -0,0 +1,24 @@
1
+ !!! XML
2
+ %schema{ :name => 'sunspot', :version => 0.9 }
3
+ %types
4
+ %fieldtype{ :name => 'text', :class => 'solr.TextField', :positionIncrementGap => 100 }
5
+ %analyzer
6
+ %tokenizer{ :class => schema.tokenizer }/
7
+ - for filter in schema.filters
8
+ %filter{ :class => filter }/
9
+ %fieldtype{ :name => 'rand', :class => 'solr.RandomSortField' }
10
+ - schema.types.each do |type|
11
+ %fieldtype{ :name => type.name, :class => "solr.#{type.class_name}Field", :omitNorms => 'true' }/
12
+ %fields
13
+ %field{ :name => 'id', :type => 'string', :indexed => 'true', :stored => 'true', :multiValued => 'false' }/
14
+ %field{ :name => 'type', :type => 'string', :indexed => 'true', :stored => 'false', :multiValued => 'true' }/
15
+ %field{ :name => 'class_name', :type => 'string', :indexed => 'true', :stored => 'false', :multiValued => 'false' }/
16
+ %field{ :name => 'text', :type => 'text', :indexed => 'true', :stored => 'false', :multiValued => 'true' }/
17
+ %dynamicField{ :name => '*_text', :type => 'text', :indexed => 'true', :stored => 'false', :multiValued => 'true' }/
18
+ %dynamicField{ :name => 'random_*', :type => 'rand', :indexed => 'true', :stored => 'false' }/
19
+ - for dynamic_field in schema.dynamic_fields
20
+ %dynamicField{ :name => dynamic_field.name, :type => dynamic_field.type, :indexed => 'true', :stored => dynamic_field.stored?, :multiValued => dynamic_field.multiValued? }/
21
+ %uniqueKey id
22
+ %defaultSearchField text
23
+ %solrQueryParser{ :defaultOperator => 'AND' }/
24
+ %copyField{ :source => '*_text', :dest => 'text' }/
metadata ADDED
@@ -0,0 +1,246 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sunspot
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.7
5
+ platform: ruby
6
+ authors:
7
+ - Mat Brown
8
+ - Peer Allan
9
+ - Dmitriy Dzema
10
+ - Benjamin Krause
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2009-08-28 00:00:00 -04:00
16
+ default_executable:
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: mwmitchell-rsolr
20
+ type: :runtime
21
+ version_requirement:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.9
27
+ version:
28
+ - !ruby/object:Gem::Dependency
29
+ name: daemons
30
+ type: :runtime
31
+ version_requirement:
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ~>
35
+ - !ruby/object:Gem::Version
36
+ version: "1.0"
37
+ version:
38
+ - !ruby/object:Gem::Dependency
39
+ name: optiflag
40
+ type: :runtime
41
+ version_requirement:
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 0.6.5
47
+ version:
48
+ - !ruby/object:Gem::Dependency
49
+ name: haml
50
+ type: :runtime
51
+ version_requirement:
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: "2.2"
57
+ version:
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec
60
+ type: :development
61
+ version_requirement:
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: "1.1"
67
+ version:
68
+ - !ruby/object:Gem::Dependency
69
+ name: ruby-debug
70
+ type: :development
71
+ version_requirement:
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: "0.10"
77
+ version:
78
+ description: Library for expressive, powerful interaction with the Solr search engine
79
+ email: mat@patch.com
80
+ executables:
81
+ - sunspot-solr
82
+ - sunspot-configure-solr
83
+ extensions: []
84
+
85
+ extra_rdoc_files:
86
+ - README.rdoc
87
+ files:
88
+ - History.txt
89
+ - LICENSE
90
+ - README.rdoc
91
+ - Rakefile
92
+ - TODO
93
+ - VERSION.yml
94
+ - bin/sunspot-configure-solr
95
+ - bin/sunspot-solr
96
+ - lib/light_config.rb
97
+ - lib/sunspot.rb
98
+ - lib/sunspot/adapters.rb
99
+ - lib/sunspot/composite_setup.rb
100
+ - lib/sunspot/configuration.rb
101
+ - lib/sunspot/data_extractor.rb
102
+ - lib/sunspot/dsl.rb
103
+ - lib/sunspot/dsl/field_query.rb
104
+ - lib/sunspot/dsl/fields.rb
105
+ - lib/sunspot/dsl/query.rb
106
+ - lib/sunspot/dsl/query_facet.rb
107
+ - lib/sunspot/dsl/restriction.rb
108
+ - lib/sunspot/dsl/scope.rb
109
+ - lib/sunspot/dsl/search.rb
110
+ - lib/sunspot/facet.rb
111
+ - lib/sunspot/facet_data.rb
112
+ - lib/sunspot/facet_row.rb
113
+ - lib/sunspot/field.rb
114
+ - lib/sunspot/field_factory.rb
115
+ - lib/sunspot/indexer.rb
116
+ - lib/sunspot/instantiated_facet.rb
117
+ - lib/sunspot/instantiated_facet_row.rb
118
+ - lib/sunspot/query.rb
119
+ - lib/sunspot/query/base_query.rb
120
+ - lib/sunspot/query/connective.rb
121
+ - lib/sunspot/query/dynamic_query.rb
122
+ - lib/sunspot/query/field_facet.rb
123
+ - lib/sunspot/query/field_query.rb
124
+ - lib/sunspot/query/pagination.rb
125
+ - lib/sunspot/query/query_facet.rb
126
+ - lib/sunspot/query/query_facet_row.rb
127
+ - lib/sunspot/query/query_field_facet.rb
128
+ - lib/sunspot/query/restriction.rb
129
+ - lib/sunspot/query/scope.rb
130
+ - lib/sunspot/query/sort.rb
131
+ - lib/sunspot/query/sort_composite.rb
132
+ - lib/sunspot/schema.rb
133
+ - lib/sunspot/search.rb
134
+ - lib/sunspot/search/hit.rb
135
+ - lib/sunspot/session.rb
136
+ - lib/sunspot/setup.rb
137
+ - lib/sunspot/type.rb
138
+ - lib/sunspot/util.rb
139
+ - solr/etc/jetty.xml
140
+ - solr/etc/webdefault.xml
141
+ - solr/lib/jetty-6.1.3.jar
142
+ - solr/lib/jetty-util-6.1.3.jar
143
+ - solr/lib/jsp-2.1/ant-1.6.5.jar
144
+ - solr/lib/jsp-2.1/core-3.1.1.jar
145
+ - solr/lib/jsp-2.1/jsp-2.1.jar
146
+ - solr/lib/jsp-2.1/jsp-api-2.1.jar
147
+ - solr/lib/servlet-api-2.5-6.1.3.jar
148
+ - solr/solr/conf/elevate.xml
149
+ - solr/solr/conf/protwords.txt
150
+ - solr/solr/conf/schema.xml
151
+ - solr/solr/conf/solrconfig.xml
152
+ - solr/solr/conf/stopwords.txt
153
+ - solr/solr/conf/synonyms.txt
154
+ - solr/start.jar
155
+ - solr/webapps/solr.war
156
+ - spec/api/adapters_spec.rb
157
+ - spec/api/build_search_spec.rb
158
+ - spec/api/indexer_spec.rb
159
+ - spec/api/query_spec.rb
160
+ - spec/api/search_retrieval_spec.rb
161
+ - spec/api/session_spec.rb
162
+ - spec/api/spec_helper.rb
163
+ - spec/api/sunspot_spec.rb
164
+ - spec/integration/dynamic_fields_spec.rb
165
+ - spec/integration/faceting_spec.rb
166
+ - spec/integration/keyword_search_spec.rb
167
+ - spec/integration/scoped_search_spec.rb
168
+ - spec/integration/spec_helper.rb
169
+ - spec/integration/stored_fields_spec.rb
170
+ - spec/integration/test_pagination.rb
171
+ - spec/mocks/adapters.rb
172
+ - spec/mocks/blog.rb
173
+ - spec/mocks/comment.rb
174
+ - spec/mocks/connection.rb
175
+ - spec/mocks/mock_adapter.rb
176
+ - spec/mocks/mock_record.rb
177
+ - spec/mocks/photo.rb
178
+ - spec/mocks/post.rb
179
+ - spec/mocks/user.rb
180
+ - spec/spec_helper.rb
181
+ - tasks/gemspec.rake
182
+ - tasks/rcov.rake
183
+ - tasks/rdoc.rake
184
+ - tasks/schema.rake
185
+ - tasks/spec.rake
186
+ - tasks/todo.rake
187
+ - templates/schema.xml.haml
188
+ has_rdoc: true
189
+ homepage: http://github.com/outoftime/sunspot
190
+ licenses: []
191
+
192
+ post_install_message:
193
+ rdoc_options:
194
+ - --charset=UTF-8
195
+ - --webcvs=http://github.com/outoftime/sunspot/tree/master/%s
196
+ - --title
197
+ - Sunspot - Solr-powered search for Ruby objects - API Documentation
198
+ - --main
199
+ - README.rdoc
200
+ require_paths:
201
+ - lib
202
+ required_ruby_version: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: "0"
207
+ version:
208
+ required_rubygems_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: "0"
213
+ version:
214
+ requirements: []
215
+
216
+ rubyforge_project: sunspot
217
+ rubygems_version: 1.3.2
218
+ signing_key:
219
+ specification_version: 3
220
+ summary: Library for expressive, powerful interaction with the Solr search engine
221
+ test_files:
222
+ - spec/spec_helper.rb
223
+ - spec/integration/spec_helper.rb
224
+ - spec/integration/faceting_spec.rb
225
+ - spec/integration/scoped_search_spec.rb
226
+ - spec/integration/keyword_search_spec.rb
227
+ - spec/integration/dynamic_fields_spec.rb
228
+ - spec/integration/stored_fields_spec.rb
229
+ - spec/integration/test_pagination.rb
230
+ - spec/mocks/mock_record.rb
231
+ - spec/mocks/blog.rb
232
+ - spec/mocks/adapters.rb
233
+ - spec/mocks/mock_adapter.rb
234
+ - spec/mocks/user.rb
235
+ - spec/mocks/photo.rb
236
+ - spec/mocks/post.rb
237
+ - spec/mocks/comment.rb
238
+ - spec/mocks/connection.rb
239
+ - spec/api/search_retrieval_spec.rb
240
+ - spec/api/spec_helper.rb
241
+ - spec/api/session_spec.rb
242
+ - spec/api/adapters_spec.rb
243
+ - spec/api/build_search_spec.rb
244
+ - spec/api/sunspot_spec.rb
245
+ - spec/api/indexer_spec.rb
246
+ - spec/api/query_spec.rb