sunspot_rails 2.0.0.pre.120924 → 2.0.0.pre.120925

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 (293) hide show
  1. data/.gitignore +6 -10
  2. data/{sunspot_rails/.rspec → .rspec} +0 -0
  3. data/{sunspot_rails/History.txt → History.txt} +0 -0
  4. data/{sunspot/LICENSE → LICENSE} +0 -0
  5. data/{sunspot_rails/MIT-LICENSE → MIT-LICENSE} +0 -0
  6. data/{sunspot_rails/README.rdoc → README.rdoc} +0 -0
  7. data/Rakefile +12 -32
  8. data/{sunspot_rails/TODO → TODO} +0 -0
  9. data/{sunspot_rails/dev_tasks → dev_tasks}/rdoc.rake +0 -0
  10. data/{sunspot_rails/dev_tasks → dev_tasks}/release.rake +0 -0
  11. data/{sunspot_rails/dev_tasks → dev_tasks}/spec.rake +0 -0
  12. data/{sunspot/tasks → dev_tasks}/todo.rake +0 -0
  13. data/{sunspot_rails/gemfiles → gemfiles}/rails-2.3.14 +0 -0
  14. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.0.15 +0 -0
  15. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.1.6 +0 -0
  16. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.2.6 +0 -0
  17. data/{sunspot_rails/generators → generators}/sunspot/sunspot_generator.rb +0 -0
  18. data/{sunspot_rails/generators → generators}/sunspot/templates/sunspot.yml +0 -0
  19. data/{sunspot_rails/install.rb → install.rb} +0 -0
  20. data/{sunspot_rails/lib → lib}/generators/sunspot_rails.rb +0 -0
  21. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/install_generator.rb +0 -0
  22. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -0
  23. data/{sunspot_rails/lib → lib}/sunspot/rails.rb +0 -0
  24. data/{sunspot_rails/lib → lib}/sunspot/rails/adapters.rb +0 -0
  25. data/{sunspot_rails/lib → lib}/sunspot/rails/configuration.rb +0 -0
  26. data/{sunspot_rails/lib → lib}/sunspot/rails/init.rb +0 -0
  27. data/{sunspot_rails/lib → lib}/sunspot/rails/log_subscriber.rb +0 -0
  28. data/{sunspot_rails/lib → lib}/sunspot/rails/railtie.rb +0 -0
  29. data/{sunspot_rails/lib → lib}/sunspot/rails/railties/controller_runtime.rb +0 -0
  30. data/{sunspot_rails/lib → lib}/sunspot/rails/request_lifecycle.rb +0 -0
  31. data/{sunspot_rails/lib → lib}/sunspot/rails/searchable.rb +0 -0
  32. data/{sunspot_rails/lib → lib}/sunspot/rails/server.rb +0 -0
  33. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_instrumentation.rb +0 -0
  34. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_logging.rb +0 -0
  35. data/{sunspot_rails/lib → lib}/sunspot/rails/spec_helper.rb +0 -0
  36. data/{sunspot_rails/lib → lib}/sunspot/rails/stub_session_proxy.rb +0 -0
  37. data/{sunspot_rails/lib → lib}/sunspot/rails/tasks.rb +0 -0
  38. data/{sunspot_rails/lib → lib}/sunspot_rails.rb +0 -0
  39. data/{sunspot_rails/spec → spec}/configuration_spec.rb +0 -0
  40. data/{sunspot_rails/spec → spec}/model_lifecycle_spec.rb +0 -0
  41. data/{sunspot_rails/spec → spec}/model_spec.rb +0 -0
  42. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/application_controller.rb +0 -0
  43. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/posts_controller.rb +0 -0
  44. data/{sunspot_rails/spec → spec}/rails_template/app/models/author.rb +0 -0
  45. data/{sunspot_rails/spec → spec}/rails_template/app/models/blog.rb +0 -0
  46. data/{sunspot_rails/spec → spec}/rails_template/app/models/location.rb +0 -0
  47. data/{sunspot_rails/spec → spec}/rails_template/app/models/photo_post.rb +0 -0
  48. data/{sunspot_rails/spec → spec}/rails_template/app/models/post.rb +0 -0
  49. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_auto.rb +0 -0
  50. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_default_scope.rb +0 -0
  51. data/{sunspot_rails/spec → spec}/rails_template/config/boot.rb +0 -0
  52. data/{sunspot_rails/spec → spec}/rails_template/config/preinitializer.rb +0 -0
  53. data/{sunspot_rails/spec → spec}/rails_template/config/routes.rb +0 -0
  54. data/{sunspot_rails/spec → spec}/rails_template/config/sunspot.yml +0 -0
  55. data/{sunspot_rails/spec → spec}/rails_template/db/schema.rb +0 -0
  56. data/{sunspot_rails/spec → spec}/request_lifecycle_spec.rb +0 -0
  57. data/{sunspot_rails/spec → spec}/schema.rb +0 -0
  58. data/{sunspot_rails/spec → spec}/searchable_spec.rb +0 -0
  59. data/{sunspot_rails/spec → spec}/server_spec.rb +0 -0
  60. data/{sunspot_rails/spec → spec}/session_spec.rb +0 -0
  61. data/{sunspot_rails/spec → spec}/shared_examples/indexed_after_save.rb +0 -0
  62. data/{sunspot_rails/spec → spec}/shared_examples/not_indexed_after_save.rb +0 -0
  63. data/{sunspot_rails/spec → spec}/spec_helper.rb +0 -0
  64. data/{sunspot_rails/spec → spec}/stub_session_proxy_spec.rb +0 -0
  65. data/{sunspot_rails/sunspot_rails.gemspec → sunspot_rails.gemspec} +0 -0
  66. metadata +102 -305
  67. data/.travis.yml +0 -35
  68. data/README.md +0 -863
  69. data/ci/travis.sh +0 -67
  70. data/sunspot/.gitignore +0 -13
  71. data/sunspot/Gemfile +0 -5
  72. data/sunspot/History.txt +0 -258
  73. data/sunspot/Rakefile +0 -13
  74. data/sunspot/TODO +0 -13
  75. data/sunspot/lib/light_config.rb +0 -40
  76. data/sunspot/lib/sunspot.rb +0 -579
  77. data/sunspot/lib/sunspot/adapters.rb +0 -349
  78. data/sunspot/lib/sunspot/batcher.rb +0 -62
  79. data/sunspot/lib/sunspot/class_set.rb +0 -23
  80. data/sunspot/lib/sunspot/composite_setup.rb +0 -202
  81. data/sunspot/lib/sunspot/configuration.rb +0 -53
  82. data/sunspot/lib/sunspot/data_extractor.rb +0 -50
  83. data/sunspot/lib/sunspot/dsl.rb +0 -5
  84. data/sunspot/lib/sunspot/dsl/adjustable.rb +0 -47
  85. data/sunspot/lib/sunspot/dsl/field_group.rb +0 -57
  86. data/sunspot/lib/sunspot/dsl/field_query.rb +0 -345
  87. data/sunspot/lib/sunspot/dsl/fields.rb +0 -103
  88. data/sunspot/lib/sunspot/dsl/fulltext.rb +0 -243
  89. data/sunspot/lib/sunspot/dsl/function.rb +0 -27
  90. data/sunspot/lib/sunspot/dsl/functional.rb +0 -44
  91. data/sunspot/lib/sunspot/dsl/more_like_this_query.rb +0 -56
  92. data/sunspot/lib/sunspot/dsl/paginatable.rb +0 -32
  93. data/sunspot/lib/sunspot/dsl/query_facet.rb +0 -36
  94. data/sunspot/lib/sunspot/dsl/restriction.rb +0 -25
  95. data/sunspot/lib/sunspot/dsl/restriction_with_near.rb +0 -160
  96. data/sunspot/lib/sunspot/dsl/scope.rb +0 -214
  97. data/sunspot/lib/sunspot/dsl/search.rb +0 -30
  98. data/sunspot/lib/sunspot/dsl/standard_query.rb +0 -122
  99. data/sunspot/lib/sunspot/field.rb +0 -193
  100. data/sunspot/lib/sunspot/field_factory.rb +0 -129
  101. data/sunspot/lib/sunspot/indexer.rb +0 -136
  102. data/sunspot/lib/sunspot/query.rb +0 -11
  103. data/sunspot/lib/sunspot/query/abstract_field_facet.rb +0 -55
  104. data/sunspot/lib/sunspot/query/bbox.rb +0 -15
  105. data/sunspot/lib/sunspot/query/boost_query.rb +0 -24
  106. data/sunspot/lib/sunspot/query/common_query.rb +0 -96
  107. data/sunspot/lib/sunspot/query/composite_fulltext.rb +0 -36
  108. data/sunspot/lib/sunspot/query/connective.rb +0 -206
  109. data/sunspot/lib/sunspot/query/date_field_facet.rb +0 -14
  110. data/sunspot/lib/sunspot/query/dismax.rb +0 -132
  111. data/sunspot/lib/sunspot/query/field_facet.rb +0 -41
  112. data/sunspot/lib/sunspot/query/field_group.rb +0 -37
  113. data/sunspot/lib/sunspot/query/filter.rb +0 -38
  114. data/sunspot/lib/sunspot/query/function_query.rb +0 -52
  115. data/sunspot/lib/sunspot/query/geo.rb +0 -53
  116. data/sunspot/lib/sunspot/query/geofilt.rb +0 -16
  117. data/sunspot/lib/sunspot/query/highlighting.rb +0 -62
  118. data/sunspot/lib/sunspot/query/more_like_this.rb +0 -61
  119. data/sunspot/lib/sunspot/query/more_like_this_query.rb +0 -12
  120. data/sunspot/lib/sunspot/query/pagination.rb +0 -42
  121. data/sunspot/lib/sunspot/query/query_facet.rb +0 -53
  122. data/sunspot/lib/sunspot/query/range_facet.rb +0 -15
  123. data/sunspot/lib/sunspot/query/restriction.rb +0 -308
  124. data/sunspot/lib/sunspot/query/scope.rb +0 -9
  125. data/sunspot/lib/sunspot/query/sort.rb +0 -109
  126. data/sunspot/lib/sunspot/query/sort_composite.rb +0 -34
  127. data/sunspot/lib/sunspot/query/standard_query.rb +0 -16
  128. data/sunspot/lib/sunspot/query/text_field_boost.rb +0 -17
  129. data/sunspot/lib/sunspot/schema.rb +0 -151
  130. data/sunspot/lib/sunspot/search.rb +0 -9
  131. data/sunspot/lib/sunspot/search/abstract_search.rb +0 -286
  132. data/sunspot/lib/sunspot/search/date_facet.rb +0 -35
  133. data/sunspot/lib/sunspot/search/facet_row.rb +0 -27
  134. data/sunspot/lib/sunspot/search/field_facet.rb +0 -88
  135. data/sunspot/lib/sunspot/search/field_group.rb +0 -70
  136. data/sunspot/lib/sunspot/search/group.rb +0 -54
  137. data/sunspot/lib/sunspot/search/highlight.rb +0 -38
  138. data/sunspot/lib/sunspot/search/hit.rb +0 -150
  139. data/sunspot/lib/sunspot/search/hit_enumerable.rb +0 -68
  140. data/sunspot/lib/sunspot/search/more_like_this_search.rb +0 -31
  141. data/sunspot/lib/sunspot/search/paginated_collection.rb +0 -57
  142. data/sunspot/lib/sunspot/search/query_facet.rb +0 -67
  143. data/sunspot/lib/sunspot/search/range_facet.rb +0 -37
  144. data/sunspot/lib/sunspot/search/standard_search.rb +0 -21
  145. data/sunspot/lib/sunspot/session.rb +0 -262
  146. data/sunspot/lib/sunspot/session_proxy.rb +0 -95
  147. data/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb +0 -29
  148. data/sunspot/lib/sunspot/session_proxy/class_sharding_session_proxy.rb +0 -66
  149. data/sunspot/lib/sunspot/session_proxy/id_sharding_session_proxy.rb +0 -89
  150. data/sunspot/lib/sunspot/session_proxy/master_slave_session_proxy.rb +0 -43
  151. data/sunspot/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb +0 -67
  152. data/sunspot/lib/sunspot/session_proxy/sharding_session_proxy.rb +0 -222
  153. data/sunspot/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +0 -42
  154. data/sunspot/lib/sunspot/session_proxy/thread_local_session_proxy.rb +0 -37
  155. data/sunspot/lib/sunspot/setup.rb +0 -350
  156. data/sunspot/lib/sunspot/text_field_setup.rb +0 -29
  157. data/sunspot/lib/sunspot/type.rb +0 -393
  158. data/sunspot/lib/sunspot/util.rb +0 -252
  159. data/sunspot/lib/sunspot/version.rb +0 -3
  160. data/sunspot/script/console +0 -10
  161. data/sunspot/spec/api/adapters_spec.rb +0 -68
  162. data/sunspot/spec/api/batcher_spec.rb +0 -112
  163. data/sunspot/spec/api/binding_spec.rb +0 -50
  164. data/sunspot/spec/api/class_set_spec.rb +0 -24
  165. data/sunspot/spec/api/hit_enumerable_spec.rb +0 -47
  166. data/sunspot/spec/api/indexer/attributes_spec.rb +0 -149
  167. data/sunspot/spec/api/indexer/batch_spec.rb +0 -72
  168. data/sunspot/spec/api/indexer/dynamic_fields_spec.rb +0 -42
  169. data/sunspot/spec/api/indexer/fixed_fields_spec.rb +0 -57
  170. data/sunspot/spec/api/indexer/fulltext_spec.rb +0 -43
  171. data/sunspot/spec/api/indexer/removal_spec.rb +0 -53
  172. data/sunspot/spec/api/indexer/spec_helper.rb +0 -1
  173. data/sunspot/spec/api/indexer_spec.rb +0 -14
  174. data/sunspot/spec/api/query/advanced_manipulation_examples.rb +0 -35
  175. data/sunspot/spec/api/query/connectives_examples.rb +0 -201
  176. data/sunspot/spec/api/query/dsl_spec.rb +0 -18
  177. data/sunspot/spec/api/query/dynamic_fields_examples.rb +0 -165
  178. data/sunspot/spec/api/query/faceting_examples.rb +0 -497
  179. data/sunspot/spec/api/query/fulltext_examples.rb +0 -313
  180. data/sunspot/spec/api/query/function_spec.rb +0 -79
  181. data/sunspot/spec/api/query/geo_examples.rb +0 -68
  182. data/sunspot/spec/api/query/group_spec.rb +0 -32
  183. data/sunspot/spec/api/query/highlighting_examples.rb +0 -245
  184. data/sunspot/spec/api/query/more_like_this_spec.rb +0 -140
  185. data/sunspot/spec/api/query/ordering_pagination_examples.rb +0 -116
  186. data/sunspot/spec/api/query/scope_examples.rb +0 -275
  187. data/sunspot/spec/api/query/spatial_examples.rb +0 -27
  188. data/sunspot/spec/api/query/spec_helper.rb +0 -1
  189. data/sunspot/spec/api/query/standard_spec.rb +0 -29
  190. data/sunspot/spec/api/query/text_field_scoping_examples.rb +0 -30
  191. data/sunspot/spec/api/query/types_spec.rb +0 -20
  192. data/sunspot/spec/api/search/dynamic_fields_spec.rb +0 -33
  193. data/sunspot/spec/api/search/faceting_spec.rb +0 -360
  194. data/sunspot/spec/api/search/highlighting_spec.rb +0 -69
  195. data/sunspot/spec/api/search/hits_spec.rb +0 -147
  196. data/sunspot/spec/api/search/paginated_collection_spec.rb +0 -36
  197. data/sunspot/spec/api/search/results_spec.rb +0 -72
  198. data/sunspot/spec/api/search/search_spec.rb +0 -23
  199. data/sunspot/spec/api/search/spec_helper.rb +0 -1
  200. data/sunspot/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +0 -85
  201. data/sunspot/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +0 -30
  202. data/sunspot/spec/api/session_proxy/master_slave_session_proxy_spec.rb +0 -41
  203. data/sunspot/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +0 -78
  204. data/sunspot/spec/api/session_proxy/sharding_session_proxy_spec.rb +0 -77
  205. data/sunspot/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +0 -24
  206. data/sunspot/spec/api/session_proxy/spec_helper.rb +0 -9
  207. data/sunspot/spec/api/session_proxy/thread_local_session_proxy_spec.rb +0 -39
  208. data/sunspot/spec/api/session_spec.rb +0 -232
  209. data/sunspot/spec/api/spec_helper.rb +0 -3
  210. data/sunspot/spec/api/sunspot_spec.rb +0 -29
  211. data/sunspot/spec/ext.rb +0 -11
  212. data/sunspot/spec/helpers/indexer_helper.rb +0 -17
  213. data/sunspot/spec/helpers/integration_helper.rb +0 -8
  214. data/sunspot/spec/helpers/mock_session_helper.rb +0 -13
  215. data/sunspot/spec/helpers/query_helper.rb +0 -26
  216. data/sunspot/spec/helpers/search_helper.rb +0 -68
  217. data/sunspot/spec/integration/dynamic_fields_spec.rb +0 -57
  218. data/sunspot/spec/integration/faceting_spec.rb +0 -330
  219. data/sunspot/spec/integration/field_grouping_spec.rb +0 -100
  220. data/sunspot/spec/integration/geospatial_spec.rb +0 -96
  221. data/sunspot/spec/integration/highlighting_spec.rb +0 -44
  222. data/sunspot/spec/integration/indexing_spec.rb +0 -55
  223. data/sunspot/spec/integration/keyword_search_spec.rb +0 -317
  224. data/sunspot/spec/integration/local_search_spec.rb +0 -64
  225. data/sunspot/spec/integration/more_like_this_spec.rb +0 -43
  226. data/sunspot/spec/integration/scoped_search_spec.rb +0 -386
  227. data/sunspot/spec/integration/stored_fields_spec.rb +0 -12
  228. data/sunspot/spec/integration/test_pagination.rb +0 -43
  229. data/sunspot/spec/integration/unicode_spec.rb +0 -15
  230. data/sunspot/spec/mocks/adapters.rb +0 -33
  231. data/sunspot/spec/mocks/blog.rb +0 -3
  232. data/sunspot/spec/mocks/comment.rb +0 -21
  233. data/sunspot/spec/mocks/connection.rb +0 -126
  234. data/sunspot/spec/mocks/mock_adapter.rb +0 -30
  235. data/sunspot/spec/mocks/mock_class_sharding_session_proxy.rb +0 -24
  236. data/sunspot/spec/mocks/mock_record.rb +0 -52
  237. data/sunspot/spec/mocks/mock_sharding_session_proxy.rb +0 -15
  238. data/sunspot/spec/mocks/photo.rb +0 -11
  239. data/sunspot/spec/mocks/post.rb +0 -86
  240. data/sunspot/spec/mocks/super_class.rb +0 -2
  241. data/sunspot/spec/mocks/user.rb +0 -13
  242. data/sunspot/spec/spec_helper.rb +0 -40
  243. data/sunspot/sunspot.gemspec +0 -37
  244. data/sunspot/tasks/rdoc.rake +0 -27
  245. data/sunspot/tasks/schema.rake +0 -19
  246. data/sunspot_rails/.gitignore +0 -7
  247. data/sunspot_rails/LICENSE +0 -18
  248. data/sunspot_rails/Rakefile +0 -17
  249. data/sunspot_rails/dev_tasks/todo.rake +0 -4
  250. data/sunspot_solr/Gemfile +0 -3
  251. data/sunspot_solr/README.rdoc +0 -24
  252. data/sunspot_solr/bin/sunspot-installer +0 -20
  253. data/sunspot_solr/bin/sunspot-solr +0 -80
  254. data/sunspot_solr/lib/sunspot/solr/installer.rb +0 -25
  255. data/sunspot_solr/lib/sunspot/solr/installer/config_installer.rb +0 -46
  256. data/sunspot_solr/lib/sunspot/solr/installer/task_helper.rb +0 -13
  257. data/sunspot_solr/lib/sunspot/solr/java.rb +0 -10
  258. data/sunspot_solr/lib/sunspot/solr/railtie.rb +0 -15
  259. data/sunspot_solr/lib/sunspot/solr/server.rb +0 -223
  260. data/sunspot_solr/lib/sunspot/solr/tasks.rb +0 -49
  261. data/sunspot_solr/lib/sunspot_solr.rb +0 -5
  262. data/sunspot_solr/solr/README.txt +0 -42
  263. data/sunspot_solr/solr/etc/jetty.xml +0 -219
  264. data/sunspot_solr/solr/etc/webdefault.xml +0 -379
  265. data/sunspot_solr/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar +0 -0
  266. data/sunspot_solr/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar +0 -0
  267. data/sunspot_solr/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  268. data/sunspot_solr/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  269. data/sunspot_solr/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  270. data/sunspot_solr/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  271. data/sunspot_solr/solr/lib/servlet-api-2.5-20081211.jar +0 -0
  272. data/sunspot_solr/solr/solr/.gitignore +0 -1
  273. data/sunspot_solr/solr/solr/README.txt +0 -54
  274. data/sunspot_solr/solr/solr/conf/admin-extra.html +0 -31
  275. data/sunspot_solr/solr/solr/conf/elevate.xml +0 -36
  276. data/sunspot_solr/solr/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
  277. data/sunspot_solr/solr/solr/conf/protwords.txt +0 -21
  278. data/sunspot_solr/solr/solr/conf/schema.xml +0 -250
  279. data/sunspot_solr/solr/solr/conf/scripts.conf +0 -24
  280. data/sunspot_solr/solr/solr/conf/solrconfig.xml +0 -934
  281. data/sunspot_solr/solr/solr/conf/spellings.txt +0 -2
  282. data/sunspot_solr/solr/solr/conf/stopwords.txt +0 -58
  283. data/sunspot_solr/solr/solr/conf/synonyms.txt +0 -31
  284. data/sunspot_solr/solr/solr/conf/xslt/example.xsl +0 -132
  285. data/sunspot_solr/solr/solr/conf/xslt/example_atom.xsl +0 -67
  286. data/sunspot_solr/solr/solr/conf/xslt/example_rss.xsl +0 -66
  287. data/sunspot_solr/solr/solr/conf/xslt/luke.xsl +0 -337
  288. data/sunspot_solr/solr/start.jar +0 -0
  289. data/sunspot_solr/solr/webapps/solr.war +0 -0
  290. data/sunspot_solr/spec/server_spec.rb +0 -98
  291. data/sunspot_solr/spec/spec_helper.rb +0 -18
  292. data/sunspot_solr/sunspot_solr.gemspec +0 -37
  293. data/tools/gem_tasks.rb +0 -69
@@ -1,3 +0,0 @@
1
- require File.expand_path('spec_helper', File.join(File.dirname(__FILE__), '..'))
2
-
3
- Dir.glob(File.join(File.dirname(__FILE__), '**', '*_examples.rb')).each { |shared| require(shared) }
@@ -1,29 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe Sunspot do
4
-
5
- describe "setup" do
6
- it "should register the class in Sunspot.searchable" do
7
- Sunspot.setup(User) do
8
- text :name
9
- end
10
- Sunspot.searchable.should_not be_empty
11
- Sunspot.searchable.should include(User)
12
- end
13
- end
14
-
15
- describe "reset!" do
16
- it "should reset current session" do
17
- old_session = Sunspot.send(:session)
18
- Sunspot.reset!(true)
19
- Sunspot.send(:session).should_not == old_session
20
- end
21
-
22
- it "should keep keep configuration if specified" do
23
- Sunspot.config.solr.url = "http://localhost:9999/path/solr"
24
- config_before_reset = Sunspot.config
25
- Sunspot.reset!(true)
26
- Sunspot.config.should == config_before_reset
27
- end
28
- end
29
- end
data/sunspot/spec/ext.rb DELETED
@@ -1,11 +0,0 @@
1
- module Solr
2
- class Document
3
- def field_by_name(field_name)
4
- @fields.find { |field| field.name.to_s == field_name.to_s }
5
- end
6
-
7
- def fields_by_name(field_name)
8
- @fields.select { |field| field.name.to_s == field_name.to_s }
9
- end
10
- end
11
- end
@@ -1,17 +0,0 @@
1
- module IndexerHelper
2
- def post(attrs = {})
3
- @post ||= Post.new(attrs)
4
- end
5
-
6
- def last_add
7
- @connection.adds.last
8
- end
9
-
10
- def value_in_last_document_for(field_name)
11
- @connection.adds.last.last.field_by_name(field_name).value
12
- end
13
-
14
- def values_in_last_document_for(field_name)
15
- @connection.adds.last.last.fields_by_name(field_name).map { |field| field.value }
16
- end
17
- end
@@ -1,8 +0,0 @@
1
- module IntegrationHelper
2
- def self.included(base)
3
- base.before(:all) do
4
- Sunspot.config.solr.url = ENV['SOLR_URL'] || 'http://localhost:8983/solr'
5
- Sunspot.reset!(true)
6
- end
7
- end
8
- end
@@ -1,13 +0,0 @@
1
- module MockSessionHelper
2
- def config
3
- @config ||= Sunspot::Configuration.build
4
- end
5
-
6
- def connection
7
- @connection ||= Mock::Connection.new
8
- end
9
-
10
- def session
11
- @session ||= Sunspot::Session.new(config, connection)
12
- end
13
- end
@@ -1,26 +0,0 @@
1
- module QueryHelper
2
- def get_filter_tag(boolean_query)
3
- connection.searches.last[:fq].each do |fq|
4
- if match = fq.match(/^\{!tag=(.+)\}#{Regexp.escape(boolean_query)}$/)
5
- return match[1]
6
- end
7
- end
8
- nil
9
- end
10
-
11
- def subqueries(param)
12
- q = connection.searches.last[:q]
13
- subqueries = []
14
- subqueries = q.scan(%r(_query_:"\{!dismax (.*?)\}(.*?)"))
15
- subqueries.map do |subquery|
16
- params = {}
17
- subquery[0].scan(%r((\S+?)='(.+?)')) do |key, value|
18
- params[key.to_sym] = value
19
- end
20
- unless subquery[1].empty?
21
- params[:v] = subquery[1]
22
- end
23
- params
24
- end
25
- end
26
- end
@@ -1,68 +0,0 @@
1
- module SearchHelper
2
- def stub_nil_results
3
- connection.response = { 'response' => nil }
4
- end
5
-
6
- def stub_full_results(*results)
7
- count =
8
- if results.last.is_a?(Integer) then results.pop
9
- else results.length
10
- end
11
- docs = results.map do |result|
12
- instance = result.delete('instance')
13
- result.merge('id' => "#{instance.class.name} #{instance.id}")
14
- end
15
- response = {
16
- 'response' => {
17
- 'docs' => docs,
18
- 'numFound' => count
19
- }
20
- }
21
- connection.response = response
22
- response
23
- end
24
-
25
- def stub_results(*results)
26
- stub_full_results(
27
- *results.map do |result|
28
- if result.is_a?(Integer)
29
- result
30
- else
31
- { 'instance' => result }
32
- end
33
- end
34
- )
35
- end
36
-
37
- def stub_facet(name, values)
38
- connection.response = {
39
- 'facet_counts' => {
40
- 'facet_fields' => {
41
- name.to_s => values.to_a.sort_by { |value, count| -count }.flatten
42
- }
43
- }
44
- }
45
- end
46
-
47
- def stub_date_facet(name, gap, values)
48
- connection.response = {
49
- 'facet_counts' => {
50
- 'facet_dates' => {
51
- name.to_s => { 'gap' => "+#{gap}SECONDS" }.merge(values)
52
- }
53
- }
54
- }
55
- end
56
-
57
- def stub_query_facet(values)
58
- connection.response = { 'facet_counts' => { 'facet_queries' => values } }
59
- end
60
-
61
- def facet_values(result, field_name)
62
- result.facet(field_name).rows.map { |row| row.value }
63
- end
64
-
65
- def facet_counts(result, field_name)
66
- result.facet(field_name).rows.map { |row| row.count }
67
- end
68
- end
@@ -1,57 +0,0 @@
1
- require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'dynamic fields' do
4
- before :each do
5
- Sunspot.remove_all
6
- @posts = Post.new(:custom_string => { :cuisine => 'Pizza' }),
7
- Post.new(:custom_string => { :cuisine => 'Greek' }),
8
- Post.new(:custom_string => { :cuisine => 'Greek' })
9
- Sunspot.index!(@posts)
10
- end
11
-
12
- it 'should search for dynamic string field' do
13
- Sunspot.search(Post) do
14
- dynamic(:custom_string) do
15
- with(:cuisine, 'Pizza')
16
- end
17
- end.results.should == [@posts.first]
18
- end
19
-
20
- describe 'faceting' do
21
- before :each do
22
- @search = Sunspot.search(Post) do
23
- dynamic :custom_string do
24
- facet :cuisine
25
- end
26
- end
27
- end
28
-
29
- it 'should return value "value" with count 2' do
30
- row = @search.dynamic_facet(:custom_string, :cuisine).rows[0]
31
- row.value.should == 'Greek'
32
- row.count.should == 2
33
- end
34
-
35
- it 'should return value "other" with count 1' do
36
- row = @search.dynamic_facet(:custom_string, :cuisine).rows[1]
37
- row.value.should == 'Pizza'
38
- row.count.should == 1
39
- end
40
- end
41
-
42
- it 'should order by dynamic string field ascending' do
43
- Sunspot.search(Post) do
44
- dynamic :custom_string do
45
- order_by :cuisine, :asc
46
- end
47
- end.results.last.should == @posts.first
48
- end
49
-
50
- it 'should order by dynamic string field descending' do
51
- Sunspot.search(Post) do
52
- dynamic :custom_string do
53
- order_by :cuisine, :desc
54
- end
55
- end.results.first.should == @posts.first
56
- end
57
- end
@@ -1,330 +0,0 @@
1
- require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'search faceting' do
4
- def self.test_field_type(name, attribute, field, *args)
5
- clazz, value1, value2 =
6
- if args.length == 2
7
- [Post, args.first, args.last]
8
- else
9
- args
10
- end
11
-
12
- context "with field of type #{name}" do
13
- before :all do
14
- Sunspot.remove_all
15
- 2.times do
16
- Sunspot.index(clazz.new(attribute => value1))
17
- end
18
- Sunspot.index(clazz.new(attribute => value2))
19
- Sunspot.commit
20
- end
21
-
22
- before :each do
23
- @search = Sunspot.search(clazz) do
24
- facet(field)
25
- end
26
- end
27
-
28
- it "should return value #{value1.inspect} with count 2" do
29
- row = @search.facet(field).rows[0]
30
- row.value.should == value1
31
- row.count.should == 2
32
- end
33
-
34
- it "should return value #{value2.inspect} with count 1" do
35
- row = @search.facet(field).rows[1]
36
- row.value.should == value2
37
- row.count.should == 1
38
- end
39
- end
40
- end
41
-
42
- test_field_type('String', :title, :title, 'Title 1', 'Title 2')
43
- test_field_type('Integer', :blog_id, :blog_id, 3, 4)
44
- test_field_type('Float', :ratings_average, :average_rating, 2.2, 1.1)
45
- test_field_type('Time', :published_at, :published_at, Time.mktime(2008, 02, 17, 17, 45, 04),
46
- Time.mktime(2008, 07, 02, 03, 56, 22))
47
- test_field_type('Trie Integer', :size, :size, Photo, 3, 4)
48
- test_field_type('Float', :average_rating, :average_rating, Photo, 2.2, 1.1)
49
- test_field_type('Time', :created_at, :created_at, Photo, Time.mktime(2008, 02, 17, 17, 45, 04),
50
- Time.mktime(2008, 07, 02, 03, 56, 22))
51
- test_field_type('Boolean', :featured, :featured, true, false)
52
-
53
- context 'facet options' do
54
- before :all do
55
- Sunspot.remove_all
56
- facet_values = %w(zero one two three four)
57
- facet_values.each_with_index do |value, i|
58
- i.times { Sunspot.index(Post.new(:title => value, :blog_id => 1)) }
59
- end
60
- Sunspot.index(Post.new(:blog_id => 1))
61
- Sunspot.index(Post.new(:title => 'zero', :blog_id => 2))
62
- Sunspot.commit
63
- end
64
-
65
- it 'should limit the number of facet rows' do
66
- search = Sunspot.search(Post) do
67
- facet :title, :limit => 3
68
- end
69
- search.facet(:title).should have(3).rows
70
- end
71
-
72
- it 'should not return zeros by default' do
73
- search = Sunspot.search(Post) do
74
- with :blog_id, 1
75
- facet :title
76
- end
77
- search.facet(:title).rows.map { |row| row.value }.should_not include('zero')
78
- end
79
-
80
- it 'should return zeros when specified' do
81
- search = Sunspot.search(Post) do
82
- with :blog_id, 1
83
- facet :title, :zeros => true
84
- end
85
- search.facet(:title).rows.map { |row| row.value }.should include('zero')
86
- end
87
-
88
- it 'should return facet rows from an offset' do
89
- search = Sunspot.search(Post) do
90
- facet :title, :offset => 3
91
- end
92
- search.facet(:title).rows.map { |row| row.value }.should == %w(one zero)
93
- end
94
-
95
- it 'should return a specified minimum count' do
96
- search = Sunspot.search(Post) do
97
- with :blog_id, 1
98
- facet :title, :minimum_count => 2
99
- end
100
- search.facet(:title).rows.map { |row| row.value }.should == %w(four three two)
101
- end
102
-
103
- it 'should order facets lexically' do
104
- search = Sunspot.search(Post) do
105
- with :blog_id, 1
106
- facet :title, :sort => :index
107
- end
108
- search.facet(:title).rows.map { |row| row.value }.should == %w(four one three two)
109
- end
110
-
111
- it 'should order facets by count' do
112
- search = Sunspot.search(Post) do
113
- with :blog_id, 1
114
- facet :title, :sort => :count
115
- end
116
- search.facet(:title).rows.map { |row| row.value }.should == %w(four three two one)
117
- end
118
-
119
- it 'should limit facet values by prefix' do
120
- search = Sunspot.search(Post) do
121
- with :blog_id, 1
122
- facet :title, :prefix => 't'
123
- end
124
- search.facet(:title).rows.map { |row| row.value }.sort.should == %w(three two)
125
- end
126
-
127
- it 'should return :all facet' do
128
- search = Sunspot.search(Post) do
129
- with :blog_id, 1
130
- facet :title, :extra => :any
131
- end
132
- search.facet(:title).rows.first.value.should == :any
133
- search.facet(:title).rows.first.count.should == 10
134
- end
135
-
136
- it 'should return :none facet' do
137
- search = Sunspot.search(Post) do
138
- with :blog_id, 1
139
- facet :title, :extra => :none
140
- end
141
- search.facet(:title).rows.first.value.should == :none
142
- search.facet(:title).rows.first.count.should == 1
143
- end
144
-
145
- it 'gives correct facet count when group == true and truncate == true' do
146
- search = Sunspot.search(Post) do
147
- group :title do
148
- truncate
149
- end
150
-
151
- facet :title, :extra => :any
152
- end
153
-
154
- # Should be 5 instead of 11
155
- search.facet(:title).rows.first.count.should == 5
156
- end
157
- end
158
-
159
- context 'prefix escaping' do
160
- before do
161
- Sunspot.remove_all
162
- ["title1", "title2", "title with spaces 1", "title with spaces 2", "title/with/slashes/1", "title/with/slashes/2"].each do |value|
163
- Sunspot.index(Post.new(:title => value, :blog_id => 1))
164
- end
165
- Sunspot.commit
166
- end
167
-
168
- it 'should limit facet values by a prefix with spaces' do
169
- search = Sunspot.search(Post) do
170
- with :blog_id, 1
171
- facet :title, :prefix => 'title '
172
- end
173
- search.facet(:title).rows.map { |row| row.value }.sort.should == ["title with spaces 1", "title with spaces 2"]
174
- end
175
-
176
- it 'should limit facet values by a prefix with slashes' do
177
- search = Sunspot.search(Post) do
178
- with :blog_id, 1
179
- facet :title, :prefix => 'title/'
180
- end
181
- search.facet(:title).rows.map { |row| row.value }.sort.should == ["title/with/slashes/1", "title/with/slashes/2"]
182
- end
183
- end
184
-
185
- context 'multiselect faceting' do
186
- before do
187
- Sunspot.remove_all
188
- Sunspot.index!(
189
- Post.new(:blog_id => 1, :category_ids => [1]),
190
- Post.new(:blog_id => 1, :category_ids => [2]),
191
- Post.new(:blog_id => 3, :category_ids => [3])
192
- )
193
- end
194
-
195
- context 'field faceting' do
196
- it 'should exclude filter from faceting' do
197
- search = Sunspot.search(Post) do
198
- with(:blog_id, 1)
199
- category_filter = with(:category_ids, 1)
200
- facet(:category_ids, :exclude => category_filter)
201
- end
202
- search.facet(:category_ids).rows.map { |row| row.value }.to_set.should == Set[1, 2]
203
- end
204
-
205
- it 'should use facet keys to facet more than once with different exclusions' do
206
- search = Sunspot.search(Post) do
207
- with(:blog_id, 1)
208
- category_filter = with(:category_ids, 1)
209
- facet(:category_ids)
210
- facet(:category_ids, :exclude => category_filter, :name => :all_category_ids)
211
- end
212
- search.facet(:category_ids).rows.map { |row| row.value }.should == [1]
213
- search.facet(:all_category_ids).rows.map { |row| row.value }.to_set.should == Set[1, 2]
214
- end
215
- end
216
-
217
- context 'query faceting' do
218
- it 'should exclude filter from faceting' do
219
- search = Sunspot.search(Post) do
220
- with(:blog_id, 1)
221
- category_filter = with(:category_ids, 1)
222
- facet :category_ids, :exclude => category_filter do
223
- row(:category_1) do
224
- with(:category_ids, 1)
225
- end
226
- row(:category_2) do
227
- with(:category_ids, 2)
228
- end
229
- end
230
- end
231
- search.facet(:category_ids).rows.map { |row| [row.value, row.count] }.to_set.should == Set[[:category_1, 1], [:category_2, 1]]
232
- end
233
-
234
- it 'should use facet keys to facet more than once with different exclusions' do
235
- search = Sunspot.search(Post) do
236
- with(:blog_id, 1)
237
- category_filter = with(:category_ids, 1)
238
- facet :category_ids do
239
- row(:category_1) do
240
- with(:category_ids, 1)
241
- end
242
- row(:category_2) do
243
- with(:category_ids, 2)
244
- end
245
- end
246
-
247
- facet :all_category_ids, :exclude => category_filter do
248
- row(:category_1) do
249
- with(:category_ids, 1)
250
- end
251
- row(:category_2) do
252
- with(:category_ids, 2)
253
- end
254
- end
255
- end
256
- search.facet(:category_ids).rows.map { |row| [row.value, row.count] }.to_set.should == Set[[:category_1, 1]]
257
- search.facet(:all_category_ids).rows.map { |row| [row.value, row.count] }.to_set.should == Set[[:category_1, 1], [:category_2, 1]]
258
- end
259
- end
260
- end
261
-
262
- context 'date facets' do
263
- before :all do
264
- Sunspot.remove_all
265
- time = Time.utc(2009, 7, 8)
266
- Sunspot.index!(
267
- (0..2).map { |i| Post.new(:published_at => time + i*60*60*16) }
268
- )
269
- end
270
-
271
- it 'should return time ranges' do
272
- time = Time.utc(2009, 7, 8)
273
- search = Sunspot.search(Post) do
274
- facet :published_at, :time_range => time..(time + 60*60*24*2), :sort => :count
275
- end
276
- search.facet(:published_at).rows.first.value.should == (time..(time + 60*60*24))
277
- search.facet(:published_at).rows.first.count.should == 2
278
- search.facet(:published_at).rows.last.value.should == ((time + 60*60*24)..(time + 60*60*24*2))
279
- search.facet(:published_at).rows.last.count.should == 1
280
- end
281
- end
282
-
283
- context 'class facets' do
284
- before :all do
285
- Sunspot.remove_all
286
- Sunspot.index!(Post.new, Post.new, Namespaced::Comment.new)
287
- end
288
-
289
- it 'should return classes' do
290
- search = Sunspot.search(Post, Namespaced::Comment) do
291
- facet(:class, :sort => :count)
292
- end
293
- search.facet(:class).rows.first.value.should == Post
294
- search.facet(:class).rows.first.count.should == 2
295
- search.facet(:class).rows.last.value.should == Namespaced::Comment
296
- search.facet(:class).rows.last.count.should == 1
297
- end
298
- end
299
-
300
- context 'query facets' do
301
- before :all do
302
- Sunspot.remove_all
303
- Sunspot.index!(
304
- [1.1, 1.2, 3.2, 3.4, 3.9, 4.1].map do |rating|
305
- Post.new(:ratings_average => rating)
306
- end
307
- )
308
- end
309
-
310
- it 'should return specified facets' do
311
- search = Sunspot.search(Post) do
312
- facet :rating_range, :sort => :count do
313
- for rating in [1.0, 2.0, 3.0, 4.0]
314
- range = rating..(rating + 1.0)
315
- row range do
316
- with :average_rating, rating..(rating + 1.0)
317
- end
318
- end
319
- end
320
- end
321
- facet = search.facet(:rating_range)
322
- facet.rows[0].value.should == (3.0..4.0)
323
- facet.rows[0].count.should == 3
324
- facet.rows[1].value.should == (1.0..2.0)
325
- facet.rows[1].count.should == 2
326
- facet.rows[2].value.should == (4.0..5.0)
327
- facet.rows[2].count.should == 1
328
- end
329
- end
330
- end